This appendix lists SIDL’s reserved words. Other words and constructs that are problematic in particular language bindings are also listed.
RESERVED WORD ROLE abstract optional modifier for class array datatype bool builtin datatype char builtin datatype class user defined datatype copy argument modifer dcomplex builtin datatype double builtin datatype enum user defined datatype extends inheritance mode fcomplex builtin datatype final package and method modifier float builtin datatype implements inheritance mode implements-all inheritance mode import bring other packages into current scope in argument mode inout argument mode int builtin datatype interface user defined datatype local method modifier long builtin datatype nonblocking method modifier oneway method modifier opaque builtin datatype out argument mode package scoping construct static method modifier string builtin datatype throws exception declaration version assign version number to package void declares method as not returning a type
Table A.1 lists all the words that are part of the SIDL grammar and cannot be used as a package, enum, interface, class, or argument name.
Since SIDL maps onto many other languages there are a great number of words and constructs that are harmless in SIDL, but cause great trouble in generated language bindings. We list known problems in Table A.2.
In addition, the following should be avoided:
WORD C C++ Java Python word C C++ Java Python abstract X lambda X and X X long X X X and_eq X mutable X asm X X namespace X assert X native X auto X X new X X bitand X not X X bitor X not_eq X bool X null X boolean X operator X break X X X X or X X case X X X or_eq X catch X X package X char X X X pass X class X X X compl X private X X const X X X protected X X const_cast X public X X continue X X X X raise X def X register X X default X X X reinterpret_cast X del X return X X X X delete X short X X X do X X X signed X X double X X X sizeof X X dynamic_cast X static X X X elif X static_cast X else X X X X strictfp X enum X X struct X X except X super X exec X switch X X X explicit X synchronized X export X template X extends X this X X extern X X throw X X false X X throws X final X transient X finally X X true X X float X X X try X X X for X X X X typedef X X friend X typeid X from X typename X global X union X X goto X X X unsigned X X if X X X X using X implements X virtual X import X void X X X inline X volatile X X X instanceof X wchar_t X int X X X while X X X X interface X xor X is X xor_eq X