Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

VM::AssemblerFile_Plaintext Class Reference

Represents a plaintext assembler input file. More...

#include <tasm-file.h>

Inheritance diagram for VM::AssemblerFile_Plaintext:

Inheritance graph
[legend]
Collaboration diagram for VM::AssemblerFile_Plaintext:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 AssemblerFile_Plaintext ()
 Create "empty" file; use ParseFile() to read content.

 ~AssemblerFile_Plaintext ()
 Destroy all the content.

int ParseFile (const TLString &fname, SError &error, uint32 file_num)
 Read in a file; see base class. [overriding virtual].

int WriteFile (const TLString &fname, SError &error)
 Write file; see base class. [overriding virtual].

int WriteFunctionProgram (FILE *fp, ProgramStorage::Function *pfunc)
 ONLY for debugging:.


Protected Member Functions

void _LexNextToken ()
 Get next token and store it in the lookahead token *tok.

TextAsmScanner::TokID _CurrTokID ()
 Return current token ID, properly casted.

void _ExpectError (const char *str)
 Report parse error (expected something else). Use location in *tok.

void _AlreadySetError ()
 Report error because current property is already set.

void _LocFirstDefError (const SCLocation &loc)
 Report "this is the location of the first definition" error.

VarType _ParseVarType (const TextAsmScanner::Token::Type *t)
 Parse a TextAsmScanner::Token::Type into a VarType.

FuncType _ParseFuncType (char ftype)
 Parse a function type ID (func/meth/vmeth).

void _SkipUntilPop (uint32 num, TextAsmScanner::TokID skip_a, TextAsmScanner::TokID skip_b=TextAsmScanner::T_EOF)
NamespaceInfo_CheckNspcNameKnown (NamespaceInfo *parent, const TLString &name)
 Check if passed name is already known as child of *parent.

void _ParseInfoSection ()
 Parse the "info:" section.

void _ParseSymbolSection ()
 Parse the "symbols:" section.

void _ParseLocationSection ()
 Parse the "locations:" section.

void _ParseProgramSection ()
 Parse the "program:" instructions section.

void _ParseSymbols_Namespace (NamespaceInfo *parent)
 Parse namespace block in symbols section.

void _ParseSymbols_Class (NamespaceInfo *parent)
 Parse class block in symbols section.

void _ParseSymbols_Symbols (NamespaceInfo *parent)
 Parse symbol (function provide) block in symbols section.

void _ParseSymbols_Global ()
 Parse {p,v}global block in symbols section.

void _ParseSymbols_Class_Base (ClassInfo *parent)
 Parse "base" block in class spec in symbols section.

void _ParseSymbols_Class_VTable (ClassInfo *parent)
 Parse "vtable" block in class spec in symbols section.

void _ParseSymbols_Class_Size (ClassInfo *parent)
 Parse size block (member var entries) of class in symbols section.

void _ParseProgram_Label ()
 Parse {m,s}label in program section.

void _ParseProgram_FinishFunction ()
 Finish a function if there is one.

int _WriteFunctionProgram (FILE *fp, ProgramStorage::Function *pfunc)
 Write program instructions of a function.

int _WriteSymbolSectionContent (FILE *fp)
 Write symbol section content recursively.

int _WriteSymbols_Recursive (StringTreeDump &out, NamespaceInfo *ni)
 Internally used by _WriteSymbolSectionContent():.

int _WriteSymbols_Global (StringTreeDump &out, _GlobVars *gvar, char which)
 Internally used by _WriteSymbolSectionContent():.

int _MustDumpNamespace (NamespaceInfo *ni)

Protected Attributes

TextAsmScanner scan
 Scanner used for lexical analysis.

int n_errors
 Number of parsing errors.

IDMapTable< CodeMark, PrgAdrcodemark2prgadr
 This is the CodeMark -> PrgAdr map used to resolve relative jumps.

TLArrayHeap< RJumpEntry, RJumpEntry_Operators > * prgadr2codemark
 This is the reverse "table" used to write assembly with jumps.

TextAsmScanner::Tokentok
 Lookahead token.


Private Member Functions

 AssemblerFile_Plaintext (const AssemblerFile_Plaintext &)
 Do not use:.

void operator= (const AssemblerFile_Plaintext &)
 Do not use:.


Detailed Description

Represents a plaintext assembler input file.

Author:
Wolfgang Wieser ] wwieser (a) gmx <*> de [
Contains all information of the (one represented) plaintext assembler input file.

This class is NOT C++-safe.

Definition at line 52 of file tasm-file.h.


Constructor & Destructor Documentation

VM::AssemblerFile_Plaintext::AssemblerFile_Plaintext const AssemblerFile_Plaintext  )  [private]
 

Do not use:.

VM::AssemblerFile_Plaintext::AssemblerFile_Plaintext  ) 
 

Create "empty" file; use ParseFile() to read content.

Definition at line 454 of file tasm-file.cc.

VM::AssemblerFile_Plaintext::~AssemblerFile_Plaintext  ) 
 

Destroy all the content.

Definition at line 465 of file tasm-file.cc.

References DELETE(), and prgadr2codemark.


Member Function Documentation

void VM::AssemblerFile_Plaintext::_AlreadySetError  )  [protected]
 

Report error because current property is already set.

Definition at line 39 of file parser.cc.

References _CurrTokID(), Assert, Error(), n_errors, scan, tok, and TextAsmScanner::TokID2String().

Referenced by _ParseSymbols_Class(), _ParseSymbols_Class_Base(), _ParseSymbols_Class_Size(), and _ParseSymbols_Class_VTable().

NamespaceInfo * VM::AssemblerFile_Plaintext::_CheckNspcNameKnown NamespaceInfo parent,
const TLString name
[protected]
 

Check if passed name is already known as child of *parent.

Definition at line 198 of file parser.cc.

References _LocFirstDefError(), Error(), VM::NamespaceInfo::map_name2child, TLBTree< NamespaceInfo *, PtrListOperators< NamespaceInfo > >::search(), and tok.

Referenced by _ParseSymbols_Class(), and _ParseSymbols_Namespace().

TextAsmScanner::TokID VM::AssemblerFile_Plaintext::_CurrTokID  )  [inline, protected]
 

Return current token ID, properly casted.

Definition at line 103 of file tasm-file.h.

References tok.

Referenced by _AlreadySetError(), _ExpectError(), _ParseInfoSection(), _ParseProgram_Label(), _ParseProgramSection(), _ParseSymbols_Class(), _ParseSymbols_Class_Base(), _ParseSymbols_Class_Size(), _ParseSymbols_Class_VTable(), _ParseSymbols_Global(), _ParseSymbols_Namespace(), _ParseSymbols_Symbols(), _ParseSymbolSection(), _SkipUntilPop(), and ParseFile().

void VM::AssemblerFile_Plaintext::_ExpectError const char *  str  )  [protected]
 

Report parse error (expected something else). Use location in *tok.

Definition at line 26 of file parser.cc.

References _CurrTokID(), Error(), n_errors, scan, tok, and TextAsmScanner::TokID2String().

Referenced by _ParseInfoSection(), _ParseProgramSection(), _ParseSymbols_Class(), _ParseSymbols_Class_Base(), _ParseSymbols_Class_Size(), _ParseSymbols_Class_VTable(), _ParseSymbols_Global(), _ParseSymbols_Namespace(), _ParseSymbols_Symbols(), _ParseSymbolSection(), and ParseFile().

void VM::AssemblerFile_Plaintext::_LexNextToken  )  [inline, protected]
 

Get next token and store it in the lookahead token *tok.

Definition at line 95 of file tasm-file.h.

References scan, TextAsmScanner::Token::str_val, and tok.

Referenced by _ParseInfoSection(), _ParseProgram_Label(), _ParseProgramSection(), _ParseSymbols_Class(), _ParseSymbols_Class_Base(), _ParseSymbols_Class_Size(), _ParseSymbols_Class_VTable(), _ParseSymbols_Global(), _ParseSymbols_Namespace(), _ParseSymbols_Symbols(), _ParseSymbolSection(), _SkipUntilPop(), and ParseFile().

void VM::AssemblerFile_Plaintext::_LocFirstDefError const SCLocation loc  )  [protected]
 

Report "this is the location of the first definition" error.

Definition at line 47 of file parser.cc.

References Error(), and n_errors.

Referenced by _CheckNspcNameKnown(), _ParseProgram_Label(), and _ParseSymbols_Class().

int VM::AssemblerFile_Plaintext::_MustDumpNamespace NamespaceInfo ni  )  [protected]
 

Decide whether we need to emit the passed namespace.
Returns 2 -> need class info, 1 -> namespace, 0 -> no

Definition at line 155 of file tasm-file.cc.

References Assert, VM::NamespaceInfo::down, LinkedList< NamespaceInfo >::first(), VM::ClassInfo::need_cast, VM::ClassInfo::need_construct, LinkedListBase< NamespaceInfo >::next, and VM::NamespaceInfo::nstype.

Referenced by _WriteSymbols_Recursive().

FuncType VM::AssemblerFile_Plaintext::_ParseFuncType char  ftype  )  [protected]
 

Parse a function type ID (func/meth/vmeth).

Definition at line 81 of file parser.cc.

References Assert.

Referenced by _ParseSymbols_Symbols().

void VM::AssemblerFile_Plaintext::_ParseInfoSection  )  [protected]
 

Parse the "info:" section.

Definition at line 738 of file parser.cc.

References _CurrTokID(), _ExpectError(), _LexNextToken(), TextAsmScanner::Token::str_val, and tok.

Referenced by ParseFile().

void VM::AssemblerFile_Plaintext::_ParseLocationSection  )  [protected]
 

Parse the "locations:" section.

Definition at line 812 of file parser.cc.

References CritAssert.

Referenced by ParseFile().

void VM::AssemblerFile_Plaintext::_ParseProgram_FinishFunction  )  [protected]
 

Finish a function if there is one.

Definition at line 125 of file parser.cc.

References VM::ProgramStorage::AddFunction(), IDMapTable< CodeMark, PrgAdr >::clear(), VM::CodeMark, codemark2prgadr, VM::INST::DescEntry::codemark_off, Error(), VM::InstructionStorage::index(), TextAsmScanner::insn_storage, VM::InstructionStorage::InstructionAt(), int32, VM::InstructionStorage::length(), VM::ProgramStorage::Function::loc, IDMapTable< CodeMark, PrgAdr >::lookup(), n_errors, VM::PrgAdr, scan, VM::INST::DescEntry::size, VM::ProgramStorage::Function::symref, VM::InstructionStorage::TightenSize(), uint, and Warning().

Referenced by _ParseProgram_Label(), and _ParseProgramSection().

void VM::AssemblerFile_Plaintext::_ParseProgram_Label  )  [protected]
 

Parse {m,s}label in program section.

Definition at line 819 of file parser.cc.

References _CurrTokID(), _LexNextToken(), _LocFirstDefError(), _ParseProgram_FinishFunction(), IDMapTable< CodeMark, PrgAdr >::AddNode(), Assert, TextAsmScanner::Token::codemark, codemark2prgadr, DELETE(), Error(), TextAsmScanner::insn_storage, VM::InstructionStorage::length(), VM::ProgramStorage::Function::loc, VM::NamespaceInfo::map_name2symbol, n_errors, VM::NamespaceInfo::name, scan, TLBTree< SymbolEntryE *, PtrListOperators< SymbolEntryE > >::search(), TLString::sprintf(), TextAsmScanner::Token::str_val, TextAsmScanner::Token::symref, tok, and uint.

Referenced by _ParseProgramSection().

void VM::AssemblerFile_Plaintext::_ParseProgramSection  )  [protected]
 

Parse the "program:" instructions section.

Definition at line 960 of file parser.cc.

References _CurrTokID(), _ExpectError(), _LexNextToken(), _ParseProgram_FinishFunction(), _ParseProgram_Label(), and tok.

Referenced by ParseFile().

void VM::AssemblerFile_Plaintext::_ParseSymbols_Class NamespaceInfo parent  )  [protected]
 

Parse class block in symbols section.

Definition at line 651 of file parser.cc.

References _AlreadySetError(), _CheckNspcNameKnown(), _CurrTokID(), _ExpectError(), _LexNextToken(), _LocFirstDefError(), _ParseSymbols_Class_Base(), _ParseSymbols_Class_Size(), _ParseSymbols_Class_VTable(), _ParseSymbols_Symbols(), ImplicitMapTable< ClassInfo, TypeID, ImplicitMapOperators< ClassInfo, TypeID, ORD_TypeID > >::AddNode(), VM::NamespaceInfo::asm_loc, Assert, DELETE(), Error(), n_errors, TextAsmScanner::Token::num, VM::ClassInfo::nvirtuals, TextAsmScanner::Token::str_val, TextAsmScanner::Token::tid, and tok.

Referenced by _ParseSymbols_Namespace(), and _ParseSymbolSection().

void VM::AssemblerFile_Plaintext::_ParseSymbols_Class_Base ClassInfo parent  )  [protected]
 

Parse "base" block in class spec in symbols section.

Definition at line 213 of file parser.cc.

References _AlreadySetError(), _CurrTokID(), _ExpectError(), _LexNextToken(), _SkipUntilPop(), VM::NonResizeableArray< BaseEntry, uint32 >::alloc(), VM::ClassInfo::base, Error(), VM::NonResizeableArray< BaseEntry, uint32 >::n(), n_errors, TextAsmScanner::Token::num, TextAsmScanner::Token::off, TextAsmScanner::Token::tid, tok, and uint32.

Referenced by _ParseSymbols_Class().

void VM::AssemblerFile_Plaintext::_ParseSymbols_Class_Size ClassInfo parent  )  [protected]
 

Parse size block (member var entries) of class in symbols section.

Definition at line 333 of file parser.cc.

References _AlreadySetError(), _CurrTokID(), _ExpectError(), _LexNextToken(), _ParseVarType(), _SkipUntilPop(), VM::NonResizeableArray< MemberVarEntry, uint32 >::alloc(), Error(), VM::VarType::IsPointerType(), VM::ClassInfo::membvar, VM::NonResizeableArray< MemberVarEntry, uint32 >::n(), n_errors, TextAsmScanner::Token::num_p, TextAsmScanner::Token::num_v, TextAsmScanner::Token::off, TextAsmScanner::Token::size, VM::ClassInfo::size, TextAsmScanner::Token::str_val, TextAsmScanner::Token::t, tok, and uint32.

Referenced by _ParseSymbols_Class().

void VM::AssemblerFile_Plaintext::_ParseSymbols_Class_VTable ClassInfo parent  )  [protected]
 

Parse "vtable" block in class spec in symbols section.

Definition at line 273 of file parser.cc.

References _AlreadySetError(), _CurrTokID(), _ExpectError(), _LexNextToken(), _SkipUntilPop(), VM::NonResizeableArray< VTableEntry, uint32 >::alloc(), Error(), VM::NonResizeableArray< VTableEntry, uint32 >::n(), n_errors, TextAsmScanner::Token::num, TextAsmScanner::Token::symref, tok, uint32, and VM::ClassInfo::vtable.

Referenced by _ParseSymbols_Class().

void VM::AssemblerFile_Plaintext::_ParseSymbols_Global  )  [protected]
 

Parse {p,v}global block in symbols section.

Definition at line 536 of file parser.cc.

References _CurrTokID(), _ExpectError(), _LexNextToken(), _ParseVarType(), IDMapTable< SymRef, GlobalVarEntry * >::AddNode(), Assert, Error(), n_errors, TextAsmScanner::Token::off, TextAsmScanner::Token::size, TextAsmScanner::Token::str_val, TextAsmScanner::Token::symref, TextAsmScanner::Token::t, and tok.

Referenced by _ParseSymbolSection().

void VM::AssemblerFile_Plaintext::_ParseSymbols_Namespace NamespaceInfo parent  )  [protected]
 

Parse namespace block in symbols section.

Definition at line 601 of file parser.cc.

References _CheckNspcNameKnown(), _CurrTokID(), _ExpectError(), _LexNextToken(), _ParseSymbols_Class(), _ParseSymbols_Symbols(), VM::NamespaceInfo::asm_loc, TextAsmScanner::Token::str_val, and tok.

Referenced by _ParseSymbolSection().

void VM::AssemblerFile_Plaintext::_ParseSymbols_Symbols NamespaceInfo parent  )  [protected]
 

Parse symbol (function provide) block in symbols section.

Definition at line 425 of file parser.cc.

References _CurrTokID(), _ExpectError(), _LexNextToken(), _ParseFuncType(), _ParseVarType(), Assert, VM::NamespaceInfo::CompleteName(), VM::NamespaceInfo::SymbolEntryB::CompleteName(), Error(), VM::FuncType::exported, VM::NamespaceInfo::SymbolEntryE::extid, TextAsmScanner::Token::ftype, VM::NamespaceInfo::SymbolEntryE::ftype, VM::NamespaceInfo::map_name2symbol, n_errors, VM::NamespaceInfo::SymbolEntryE::name, VM::NamespaceInfo::nstype, TLString::sprintf(), TLBTree< SymbolEntryE *, PtrListOperators< SymbolEntryE > >::store(), TLString::str(), TextAsmScanner::Token::str_val, VM::NamespaceInfo::symbol, VM::NamespaceInfo::SymbolEntryB::symref, TextAsmScanner::Token::symref, TextAsmScanner::Token::t, tok, uint, and VM::NamespaceInfo::SymbolEntryE::vtype.

Referenced by _ParseSymbols_Class(), _ParseSymbols_Namespace(), and _ParseSymbolSection().

void VM::AssemblerFile_Plaintext::_ParseSymbolSection  )  [protected]
 

Parse the "symbols:" section.

Definition at line 766 of file parser.cc.

References _CurrTokID(), _ExpectError(), _LexNextToken(), _ParseSymbols_Class(), _ParseSymbols_Global(), _ParseSymbols_Namespace(), _ParseSymbols_Symbols(), VM::NamespaceInfo::asm_loc, and tok.

Referenced by ParseFile().

VarType VM::AssemblerFile_Plaintext::_ParseVarType const TextAsmScanner::Token::Type t  )  [protected]
 

Parse a TextAsmScanner::Token::Type into a VarType.

Todo:
FIXME VM: TypeID not needed in pointer type (i.e. p>TYPEID).

Definition at line 54 of file parser.cc.

References VM::VarType::array, Assert, VM::VarType::id, and TextAsmScanner::Token::Type::tchar.

Referenced by _ParseSymbols_Class_Size(), _ParseSymbols_Global(), and _ParseSymbols_Symbols().

void VM::AssemblerFile_Plaintext::_SkipUntilPop uint32  num,
TextAsmScanner::TokID  skip_a,
TextAsmScanner::TokID  skip_b = TextAsmScanner::T_EOF
[protected]
 

Skip (num) tokens skip_a, skip_b until a TS_pop is found. The number (num) is currently ignored.

Definition at line 99 of file parser.cc.

References _CurrTokID(), _LexNextToken(), and uint32.

Referenced by _ParseSymbols_Class_Base(), _ParseSymbols_Class_Size(), and _ParseSymbols_Class_VTable().

int VM::AssemblerFile_Plaintext::_WriteFunctionProgram FILE *  fp,
ProgramStorage::Function pfunc
[protected]
 

Write program instructions of a function.

Definition at line 29 of file tasm-file.cc.

References _unused_, VM::AssemblerFile_Plaintext::RJumpEntry::adr, Assert, TLArrayHeap< RJumpEntry, RJumpEntry_Operators >::clear(), VM::AssemblerFile_Plaintext::RJumpEntry::cmark, VM::CodeMark, VM::INST::DescEntry::codemark_off, VM::NamespaceInfo::SymbolEntryB::CompleteName(), DELETE(), VM::InstructionStorage::DumpInstruction(), Error(), TLArrayHeap< RJumpEntry, RJumpEntry_Operators >::first(), VM::NamespaceInfo::SymbolEntryE::ftype, VM::InstructionStorage::index(), TLArrayHeap< RJumpEntry, RJumpEntry_Operators >::insert(), VM::InstructionStorage::InstructionAt(), int32, TLArray< T, _OP >::IsEmpty(), VM::InstructionStorage::length(), VM::ProgramStorage::Function::loc, TLArray< T, _OP >::NElem(), VM::AssemblerFile::SLabelInfo::pfunc, TLArrayHeap< RJumpEntry, RJumpEntry_Operators >::PopFirst(), VM::PrgAdr, prgadr2codemark, VM::ProgramStorage::Function::se, VM::INST::DescEntry::size, TLString::str(), VM::NamespaceInfo::SymbolEntryB::symref, VM::FuncType::TypeString(), and uint.

Referenced by WriteFile(), and WriteFunctionProgram().

int VM::AssemblerFile_Plaintext::_WriteSymbols_Global StringTreeDump out,
_GlobVars *  gvar,
char  which
[protected]
 

Internally used by _WriteSymbolSectionContent():.

Definition at line 359 of file tasm-file.cc.

References StringTreeDump::AddIndent(), TLString::sprintf(), StringTreeDump::SubIndent(), and uint.

Referenced by _WriteSymbolSectionContent().

int VM::AssemblerFile_Plaintext::_WriteSymbols_Recursive StringTreeDump out,
NamespaceInfo ni
[protected]
 

Internally used by _WriteSymbolSectionContent():.

Definition at line 185 of file tasm-file.cc.

References _MustDumpNamespace(), StringTreeDump::AddIndent(), Assert, VM::ClassInfo::base, VM::ClassInfo::BaseEntry::ci, VM::ClassInfoIE::class_tid, TLString::deref(), VM::NamespaceInfo::down, VM::FuncType::exported, VM::NamespaceInfo::SymbolEntryE::extid, LinkedList< NamespaceInfo >::first(), VM::NamespaceInfo::SymbolEntryE::ftype, VM::FuncType::id, LinkedList< NamespaceInfo >::IsEmpty(), VM::VarType::IsPointerType(), VM::ClassInfo::membvar, VM::NonResizeableArray< VTableEntry, uint32 >::n(), VM::NonResizeableArray< MemberVarEntry, uint32 >::n(), VM::NonResizeableArray< BaseEntry, uint32 >::n(), VM::NamespaceInfo::SymbolEntryE::name, VM::ClassInfo::MemberVarEntry::name, VM::NamespaceInfo::name, LinkedListBase< NamespaceInfo >::next, VM::NamespaceInfo::nstype, VM::ClassInfo::nvirtuals, VM::ClassInfo::MemberVarEntry::off, VM::ClassInfo::BaseEntry::off, VM::NamespaceInfo::parent, VM::ClassInfo::VTableEntry::se, VM::ClassInfo::size, TLString::sprintf(), TLString::str(), StringTreeDump::SubIndent(), VM::NamespaceInfo::symbol, VM::NamespaceInfo::SymbolEntryB::symref, VM::VarType::TypeString(), uint, uint32, VM::ClassInfo::vtable, VM::NamespaceInfo::SymbolEntryE::vtype, and VM::ClassInfo::MemberVarEntry::vtype.

Referenced by _WriteSymbolSectionContent().

int VM::AssemblerFile_Plaintext::_WriteSymbolSectionContent FILE *  fp  )  [protected]
 

Write symbol section content recursively.

Definition at line 389 of file tasm-file.cc.

References _WriteSymbols_Global(), _WriteSymbols_Recursive(), StringTreeDump::AddIndent(), StringTreeDump::SubIndent(), and StringTreeDump::write().

Referenced by WriteFile().

void VM::AssemblerFile_Plaintext::operator= const AssemblerFile_Plaintext  )  [private]
 

Do not use:.

int VM::AssemblerFile_Plaintext::ParseFile const TLString fname,
SError error,
uint32  file_num
[virtual]
 

Read in a file; see base class. [overriding virtual].

Reimplemented from VM::AssemblerFile.

Definition at line 991 of file parser.cc.

References _CurrTokID(), _ExpectError(), _LexNextToken(), _ParseInfoSection(), _ParseLocationSection(), _ParseProgramSection(), _ParseSymbolSection(), Assert, n_errors, TextAsmScanner::NErrors(), SCLocation::pos, scan, tok, and uint32.

Referenced by _DoParseFile().

int VM::AssemblerFile_Plaintext::WriteFile const TLString fname,
SError error
[virtual]
 

Write file; see base class. [overriding virtual].

Reimplemented from VM::AssemblerFile.

Definition at line 409 of file tasm-file.cc.

References _WriteFunctionProgram(), _WriteSymbolSectionContent(), DELETE(), VM::ProgramStorage::FirstFunction(), LinkedListBase< Function >::next, prgadr2codemark, and TLString::str().

int VM::AssemblerFile_Plaintext::WriteFunctionProgram FILE *  fp,
ProgramStorage::Function pfunc
[inline]
 

ONLY for debugging:.

Definition at line 190 of file tasm-file.h.

References _WriteFunctionProgram().


Member Data Documentation

IDMapTable<CodeMark,PrgAdr> VM::AssemblerFile_Plaintext::codemark2prgadr [protected]
 

This is the CodeMark -> PrgAdr map used to resolve relative jumps.

Definition at line 86 of file tasm-file.h.

Referenced by _ParseProgram_FinishFunction(), and _ParseProgram_Label().

int VM::AssemblerFile_Plaintext::n_errors [protected]
 

Number of parsing errors.

Definition at line 83 of file tasm-file.h.

Referenced by _AlreadySetError(), _ExpectError(), _LocFirstDefError(), _ParseProgram_FinishFunction(), _ParseProgram_Label(), _ParseSymbols_Class(), _ParseSymbols_Class_Base(), _ParseSymbols_Class_Size(), _ParseSymbols_Class_VTable(), _ParseSymbols_Global(), _ParseSymbols_Symbols(), and ParseFile().

TLArrayHeap<RJumpEntry,RJumpEntry_Operators>* VM::AssemblerFile_Plaintext::prgadr2codemark [protected]
 

This is the reverse "table" used to write assembly with jumps.

Definition at line 89 of file tasm-file.h.

Referenced by _WriteFunctionProgram(), WriteFile(), and ~AssemblerFile_Plaintext().

TextAsmScanner VM::AssemblerFile_Plaintext::scan [protected]
 

Scanner used for lexical analysis.

Definition at line 81 of file tasm-file.h.

Referenced by _AlreadySetError(), _ExpectError(), _LexNextToken(), _ParseProgram_FinishFunction(), _ParseProgram_Label(), and ParseFile().

TextAsmScanner::Token* VM::AssemblerFile_Plaintext::tok [protected]
 

Lookahead token.

Definition at line 92 of file tasm-file.h.

Referenced by _AlreadySetError(), _CheckNspcNameKnown(), _CurrTokID(), _ExpectError(), _LexNextToken(), _ParseInfoSection(), _ParseProgram_Label(), _ParseProgramSection(), _ParseSymbols_Class(), _ParseSymbols_Class_Base(), _ParseSymbols_Class_Size(), _ParseSymbols_Class_VTable(), _ParseSymbols_Global(), _ParseSymbols_Namespace(), _ParseSymbols_Symbols(), _ParseSymbolSection(), and ParseFile().


The documentation for this class was generated from the following files:
Generated on Sat Feb 19 22:36:09 2005 for Ray by doxygen 1.3.5