/*************************************************************************** * Copyright (C) 2003-2005 by David Saxton * * david@bluehaze.org * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * ***************************************************************************/ #ifndef ASMFORMATTER_H #define ASMFORMATTER_H #include /** @author David Saxton */ class InstructionParts { public: /** * Breaks up the line into parts. */ InstructionParts( TQString line ); TQString label() const { return m_label; } TQString operand() const { return m_operand; } TQString operandData() const { return m_operandData; } TQString comment() const { return m_comment; } protected: TQString m_label; TQString m_operand; TQString m_operandData; TQString m_comment; ///< includes the ";" part }; /** @author David Saxton */ class AsmFormatter { public: AsmFormatter(); ~AsmFormatter(); enum LineType { Equ, Instruction, // could include label Other, // eg comments, __config }; TQString tidyAsm( TQStringList lines ); static LineType lineType( TQString line ); protected: TQString tidyInstruction( const TQString & line ); TQString tidyEqu( const TQString & line ); /** * Appends spaces to the end of text until it is greater or equakl to * length. */ static void pad( TQString & text, int length ); int m_indentAsmName; int m_indentAsmData; int m_indentEqu; int m_indentEquValue; int m_indentEquComment; int m_indentComment; }; #endif