関数名が C++ の符号化 (mangle) シンボルの場合には、lex はそれを復号化された (demangle) 形式で出力します。符号化 C++ シンボルは、すべて復号化シンボルの後で [] でくくられます。通常の符号化 C++ 関数名 (メンバー関数と非メンバー関数を含む) の場合には、関数プロトタイプがその復号化 (demangle) の形式として使用されます。
たとえば、以下の関数名は、
_ct_13Iostream_initFv
以下のように出力されます。
Iostream_init::Iostream_init()
C++ の静的コンストラクタと静的デストラクタは、復号化されて以下の形式で出力されます。
static constructor function for
または、
static destructor function for
たとえば、以下のデストラクタは、
_std_stream_in_c_Fv
以下のように復号化されます。
static destructor function for _stream_in_c
C++ 仮想テーブルシンボルが符号化された時の名前は以下の形式になります。
_vtbl_class
_vtbl_root_class_derived_class
lex の出力では、仮想テーブルシンボルが復号化された時のの名前は以下のように出力されます。
virtual table for class
virtual table for class derived_class derived from root_class
たとえば、以下を復号化すると、
_vtbl_7fstream
以下の形式になります。
virtual table for fstreamH
また、以下を復号化すると、
_vtbl_3ios_18ostream_withassign
以下の形式になります。
virtual table for class ostream_withassign derived from ios
一部の C++ シンボルは、仮想テーブルに対するポインタです。符号化された時の名前は、以下の形式になります。
_ptbl_class_filename
_ptbl_root_class_derived_class_filename
lex の出力では、これらのシンボルが復号化された時の名前は以下のように出力されます。
pointer to virtual table for class in filename
pointer to virtual table for class derived class derived from root_class in filename
たとえば、以下を復号化すると、
_ptbl_3ios_stream_fstream_c
以下の形式になります。
pointer to the virtual table for ios in _stream_fstream_c
また、以下を復号化すると、
_ptbl_3ios_11fstreambase_stream_fstream_c
以下の形式になります。
_stream_fstream_c
pointer to the virtual table for class fstreambase derived from ios in _stream_fstream_c