23 #ifndef __CLRX_ASMSOURCE_H__
24 #define __CLRX_ASMSOURCE_H__
26 #include <CLRX/Config.h>
161 void print(std::ostream& os, cxuint indentLevel = 0)
const;
195 std::vector<char> content;
196 std::vector<SourceTrans> sourceTranslations;
197 std::vector<LineTrans> colTranslations;
213 const std::vector<LineTrans>& colTrans,
size_t lineSize,
const char* line);
216 {
return colTranslations; }
222 {
return sourceTranslations.size(); }
225 {
return sourceTranslations[index]; }
228 {
return sourcePos; }
231 {
return args.size(); }
268 const std::vector<LineTrans>& colTrans,
size_t lineSize,
const char* line);
308 {
return symbolName; }
311 {
return symValues[i]; }
392 enum class LineMode: cxbyte
402 std::istream* stream;
437 size_t sourceTransIndex;
444 const MacroArgMap& argMap, uint64_t macroCount,
bool alternateMacro);
447 MacroArgMap&& argMap, uint64_t macroCount,
bool alternateMacro);
458 std::unique_ptr<const AsmRepeat> repeat;
459 uint64_t repeatCount;
461 size_t sourceTransIndex;
471 {
return repeatCount; }
478 std::unique_ptr<const AsmIRP> irp;
479 uint64_t repeatCount;
481 size_t sourceTransIndex;
492 {
return repeatCount; }
AsmRepeatInputFilter or AsmIRPInputFilter.
assembler macro aegument
Definition: AsmSource.h:173
common definitions for assembler and disassembler
virtual ~AsmRepeatSource()
destructor
main class of assembler
Definition: Assembler.h:559
line translations
Definition: AsmSource.h:165
RefPtr< const AsmSource > source
source of substituted content
Definition: AsmSource.h:125
const AsmSourcePos & getSourcePos() const
get source position
Definition: AsmSource.h:282
non copyable and non movable base structure (class)
Definition: Utilities.h:43
RefPtr< const AsmSource > source
source
Definition: AsmSource.h:246
AsmIRP(const AsmSourcePos &pos, const CString &symbolName, const CString &symValString)
constructor
assembler repeat
Definition: AsmSource.h:238
AsmSourceType type
type of Asm source (file or macro)
Definition: AsmSource.h:67
assembler macro
Definition: AsmSource.h:182
const size_t getArgsNum() const
get number of arguments
Definition: AsmSource.h:230
uint64_t getRepeatsNum() const
get number of repetitions
Definition: AsmSource.h:285
const SourceTrans & getSourceTrans(uint64_t index) const
get source translation
Definition: AsmSource.h:279
ColNo colNo
column number, for macro substitution and IRP points to column preprocessed line
Definition: AsmSource.h:49
AsmSourceType
source type
Definition: AsmSource.h:57
AsmMacroSubst(RefPtr< const AsmMacroSubst > _parent, RefPtr< const AsmSource > _source, LineNo _lineNo, ColNo _colNo)
constructor with parent macro substitution
Definition: AsmSource.h:115
AsmFile(const CString &_file)
constructor
Definition: AsmSource.h:87
reference pointer based on Glibmm refptr
Definition: Utilities.h:761
bool isIRPC() const
get if IRPC
Definition: AsmSource.h:313
const CString & getSymbolName() const
get number of repetitions
Definition: AsmSource.h:307
source translation
Definition: AsmSource.h:186
ssize_t position
position in joined line, can be negative if filtered line is statement
Definition: AsmSource.h:168
AsmMacroSource(RefPtr< const AsmMacroSubst > _macro, RefPtr< const AsmSource > _source)
construcror
Definition: AsmSource.h:128
AsmRepeatSource(RefPtr< const AsmSource > _source, uint64_t _repeatCount, uint64_t _repeatsNum)
constructor
Definition: AsmSource.h:143
RefPtr< const AsmSource > source
source of content where macro substituted
Definition: AsmSource.h:106
an array class
Definition: Containers.h:38
AsmSourcePos sourcePos
current source position
Definition: AsmSource.h:250
ColNo colNo
column number
Definition: AsmSource.h:157
RefPtr< const AsmMacroSubst > macro
macro substitution in which message occurred
Definition: AsmSource.h:154
CString name
name
Definition: AsmSource.h:175
AsmInputFilterType
type of AsmInputFilter
Definition: AsmSource.h:318
line and column
Definition: AsmSource.h:44
const AsmMacroArg & getArg(size_t i) const
get argument
Definition: AsmSource.h:233
LineNo lineNo
line number of top-most source
Definition: AsmSource.h:156
size_t ColNo
column number type
Definition: Utilities.h:78
LineNo lineNo
line number
Definition: AsmSource.h:188
uint64_t repeatsNum
number of all repetitions
Definition: AsmSource.h:140
LineNo lineNo
line number
Definition: AsmSource.h:244
std::vector< LineTrans > colTranslations
column translations
Definition: AsmSource.h:254
RefPtr< const AsmSource > source
source in which message occurred
Definition: AsmSource.h:155
reference countable object (only for single threading usage)
Definition: Utilities.h:737
ColNo colNo
place in line where file is included
Definition: AsmSource.h:83
const AsmSourcePos * exprSourcePos
expression sourcepos from what evaluation made
Definition: AsmSource.h:158
LineNo contentLineNo
number of content's line
Definition: AsmSource.h:249
assembler IRP
Definition: AsmSource.h:290
descriptor of assembler repetition
Definition: AsmSource.h:136
virtual ~AsmFile()
destructor
RefPtr< const AsmSource > source
source of content
Definition: AsmSource.h:138
bool vararg
is variadic argument
Definition: AsmSource.h:177
size_t getSourceTransSize() const
get source translations size
Definition: AsmSource.h:276
virtual ~AsmMacroSource()
destructor
RefPtr< const AsmSource > source
source
Definition: AsmSource.h:189
const AsmSourcePos & getSourcePos() const
get source position
Definition: AsmSource.h:227
descriptor of file inclusion
Definition: AsmSource.h:77
AsmFile(const RefPtr< const AsmSource > _parent, LineNo _lineNo, ColNo _colNo, const CString &_file)
constructor with parent file inclustion
Definition: AsmSource.h:92
LineNo lineNo
place where file is included (0 if root)
Definition: AsmSource.h:82
AsmRepeat(const AsmSourcePos &pos, uint64_t repeatsNum)
constructor
RefPtr< const AsmSource > parent
parent source for this source (for file is parent file or macro substitution, for macro substitution ...
Definition: AsmSource.h:81
utilities for other libraries and programs
const CString & getSymbolValue(size_t i) const
get symbol value or string
Definition: AsmSource.h:310
RefPtr< const AsmMacroSubst > parent
parent source for this source (for file is parent file or macro substitution, for macro substitution ...
Definition: AsmSource.h:105
std::vector< SourceTrans > sourceTranslations
source translations
Definition: AsmSource.h:253
uint64_t repeatCount
number of repetition
Definition: AsmSource.h:139
bool required
is required
Definition: AsmSource.h:178
LineNo lineNo
source code line number
Definition: AsmSource.h:169
AsmMacroSubst(RefPtr< const AsmSource > _source, LineNo _lineNo, ColNo _colNo)
constructor
Definition: AsmSource.h:111
void addLine(RefPtr< const AsmMacroSubst > macro, RefPtr< const AsmSource > source, const std::vector< LineTrans > &colTrans, size_t lineSize, const char *line)
adds line to repeat from source
virtual ~AsmSource()
destructor
uint64_t repeatsNum
repeats number
Definition: AsmSource.h:251
descriptor assembler macro substitution
Definition: AsmSource.h:101
descriptor of macro source (used in source fields)
Definition: AsmSource.h:122
RefPtr< const AsmMacroSubst > macro
macro substitution
Definition: AsmSource.h:245
uint64_t LineNo
line number type
Definition: Utilities.h:75
const SourceTrans & getSourceTrans(uint64_t index) const
get source translations
Definition: AsmSource.h:224
LineNo lineNo
line number
Definition: AsmSource.h:46
const std::vector< LineTrans > & getColTranslations() const
get column translations
Definition: AsmSource.h:215
void addLine(RefPtr< const AsmMacroSubst > macro, RefPtr< const AsmSource > source, const std::vector< LineTrans > &colTrans, size_t lineSize, const char *line)
adds line to macro from source
source translations
Definition: AsmSource.h:242
CString defaultValue
default value
Definition: AsmSource.h:176
AsmMacro(const AsmSourcePos &pos, const Array< AsmMacroArg > &args)
constructor
std::vector< char > content
content
Definition: AsmSource.h:252
RefPtr< const AsmMacroSubst > macro
macro substition
Definition: AsmSource.h:124
void print(std::ostream &os, cxuint indentLevel=0) const
print source position
size_t getSourceTransSize() const
get source translations size
Definition: AsmSource.h:221
const CString file
file path
Definition: AsmSource.h:84
ColNo colNo
place in line where macro substituted
Definition: AsmSource.h:108
descriptor of assembler source for source position
Definition: AsmSource.h:65
const std::vector< LineTrans > & getColTranslations() const
get column translations
Definition: AsmSource.h:270
simple C-string container
Definition: CString.h:38
LineNo lineNo
place where macro substituted
Definition: AsmSource.h:107
const std::vector< char > & getContent() const
get content of repetition
Definition: AsmSource.h:273
AsmSource(AsmSourceType _type)
constructor
Definition: AsmSource.h:70
const std::vector< char > & getContent() const
get content vector
Definition: AsmSource.h:218
assembler source position
Definition: AsmSource.h:152