Skip to content

Commit

Permalink
Merge branch 'misc-cpp-stl' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
thunder422 committed Dec 3, 2014
2 parents dc4dd26 + 69ae2f0 commit 7f303f1
Show file tree
Hide file tree
Showing 28 changed files with 1,026 additions and 1,263 deletions.
6 changes: 6 additions & 0 deletions CMakeLists.txt
Expand Up @@ -180,6 +180,11 @@ add_custom_command(OUTPUT test_names.h
DEPENDS table.cpp
)

# list the header files without source files
set(ibcp_HEADERS
programcode.h
)

# list the main program sources
set(ibcp_SOURCES
basic/basic.cpp
Expand Down Expand Up @@ -301,6 +306,7 @@ add_executable(ibcp
basic/basic.h
autoenums.h
test_names.h
${ibcp_HEADERS}
${ibcp_SOURCES}
${ibcp_MOCS}
${ibcp_UI_HEADERS}
Expand Down
52 changes: 26 additions & 26 deletions basic/basic.cpp
Expand Up @@ -30,18 +30,18 @@

// REM FUNCTIONS

quint16 remEncode(ProgramModel *programUnit, const TokenPtr &token)
uint16_t remEncode(ProgramModel *programUnit, const TokenPtr &token)
{
return programUnit->remDictionary()->add(token);
}

const std::string remOperandText(const ProgramModel *programUnit,
quint16 operand)
uint16_t operand)
{
return programUnit->remDictionary()->string(operand);
}

void remRemove(ProgramModel *programUnit, quint16 operand)
void remRemove(ProgramModel *programUnit, uint16_t operand)
{
programUnit->remDictionary()->remove(operand);
}
Expand All @@ -55,10 +55,10 @@ void ConstNumInfo::clear(void)
m_valueInt.clear();
}

void ConstNumInfo::addElement(void)
void ConstNumInfo::addElement(const TokenPtr &token)
{
m_value.resize(m_value.size() + 1);
m_valueInt.resize(m_valueInt.size() + 1);
m_value.emplace_back(token->value());
m_valueInt.emplace_back(token->valueInt());
}

void ConstNumInfo::setElement(int index, const TokenPtr &token)
Expand All @@ -67,18 +67,18 @@ void ConstNumInfo::setElement(int index, const TokenPtr &token)
m_valueInt[index] = token->valueInt();
}

quint16 constNumEncode(ProgramModel *programUnit, const TokenPtr &token)
uint16_t constNumEncode(ProgramModel *programUnit, const TokenPtr &token)
{
return programUnit->constNumDictionary()->add(token);
}

const std::string constNumOperandText(const ProgramModel *programUnit,
quint16 operand)
uint16_t operand)
{
return programUnit->constNumDictionary()->string(operand);
}

void constNumRemove(ProgramModel *programUnit, quint16 operand)
void constNumRemove(ProgramModel *programUnit, uint16_t operand)
{
programUnit->constNumDictionary()->remove(operand);
}
Expand All @@ -89,14 +89,14 @@ void ConstStrInfo::clear(void)
m_value.clear();
}

void ConstStrInfo::addElement(void)
void ConstStrInfo::addElement(const TokenPtr &token)
{
m_value.append(new QString);
m_value.emplace_back(new std::string {token->string()});
}

void ConstStrInfo::setElement(int index, const TokenPtr &token)
{
*m_value[index] = token->string().c_str();
*m_value[index] = token->string();
}

void ConstStrInfo::clearElement(int index)
Expand All @@ -106,25 +106,25 @@ void ConstStrInfo::clearElement(int index)

ConstStrInfo::~ConstStrInfo(void)
{
for (int i {}; i < m_value.count(); i++)
for (auto string : m_value)
{
delete m_value.at(i);
delete string;
}
}


quint16 constStrEncode(ProgramModel *programUnit, const TokenPtr &token)
uint16_t constStrEncode(ProgramModel *programUnit, const TokenPtr &token)
{
return programUnit->constStrDictionary()->add(token);
}

const std::string constStrOperandText(const ProgramModel *programUnit,
quint16 operand)
uint16_t operand)
{
return programUnit->constStrDictionary()->string(operand);
}

void constStrRemove(ProgramModel *programUnit, quint16 operand)
void constStrRemove(ProgramModel *programUnit, uint16_t operand)
{
programUnit->constStrDictionary()->remove(operand);
}
Expand All @@ -148,52 +148,52 @@ void constStrRecreate(Recreator &recreator, RpnItemPtr &rpnItem)

// VARIABLE FUNCTIONS

quint16 varDblEncode(ProgramModel *programUnit, const TokenPtr &token)
uint16_t varDblEncode(ProgramModel *programUnit, const TokenPtr &token)
{
return programUnit->varDblDictionary()->add(token);
}

quint16 varIntEncode(ProgramModel *programUnit, const TokenPtr &token)
uint16_t varIntEncode(ProgramModel *programUnit, const TokenPtr &token)
{
return programUnit->varIntDictionary()->add(token);
}

quint16 varStrEncode(ProgramModel *programUnit, const TokenPtr &token)
uint16_t varStrEncode(ProgramModel *programUnit, const TokenPtr &token)
{
return programUnit->varStrDictionary()->add(token);
}


const std::string varDblOperandText(const ProgramModel *programUnit,
quint16 operand)
uint16_t operand)
{
return programUnit->varDblDictionary()->string(operand);
}

const std::string varIntOperandText(const ProgramModel *programUnit,
quint16 operand)
uint16_t operand)
{
return programUnit->varIntDictionary()->string(operand);
}

const std::string varStrOperandText(const ProgramModel *programUnit,
quint16 operand)
uint16_t operand)
{
return programUnit->varStrDictionary()->string(operand);
}


void varDblRemove(ProgramModel *programUnit, quint16 operand)
void varDblRemove(ProgramModel *programUnit, uint16_t operand)
{
programUnit->varDblDictionary()->remove(operand);
}

void varIntRemove(ProgramModel *programUnit, quint16 operand)
void varIntRemove(ProgramModel *programUnit, uint16_t operand)
{
programUnit->varIntDictionary()->remove(operand);
}

void varStrRemove(ProgramModel *programUnit, quint16 operand)
void varStrRemove(ProgramModel *programUnit, uint16_t operand)
{
programUnit->varStrDictionary()->remove(operand);
}
Expand Down
90 changes: 43 additions & 47 deletions basic/basic.h
Expand Up @@ -26,9 +26,8 @@
#define BASIC_H

#include <memory>

#include <QString>
#include <QVector>
#include <string>
#include <vector>

#include "ibcp.h"
#include "token.h"
Expand All @@ -47,22 +46,22 @@ using RpnItemPtr = std::shared_ptr<RpnItem>;
class ConstNumInfo : public AbstractInfo
{
public:
void clear(void);
void addElement(void);
void setElement(int index, const TokenPtr &token);
void clear(void) override;
void addElement(const TokenPtr &token) override;
void setElement(int index, const TokenPtr &token) override;

double *array(void)
std::vector<double> &array(void)
{
return m_value.data();
return m_value;
}
int *arrayInt(void)
std::vector<int> &arrayInt(void)
{
return m_valueInt.data();
return m_valueInt;
}

private:
QVector<double> m_value; // vector of double values
QVector<int> m_valueInt; // vector of integer values
std::vector<double> m_value; // vector of double values
std::vector<int> m_valueInt; // vector of integer values
};

class ConstNumDictionary : public InfoDictionary
Expand All @@ -73,11 +72,11 @@ class ConstNumDictionary : public InfoDictionary
m_info.reset(new ConstNumInfo);
}

double *array(void)
std::vector<double> &array(void)
{
return (dynamic_cast<ConstNumInfo *>(m_info.get()))->array();
}
int *arrayInt(void)
std::vector<int> &arrayInt(void)
{
return (dynamic_cast<ConstNumInfo *>(m_info.get()))->arrayInt();
}
Expand All @@ -87,19 +86,19 @@ class ConstNumDictionary : public InfoDictionary
class ConstStrInfo : public AbstractInfo
{
public:
~ConstStrInfo(void);
void clear(void);
void addElement(void);
void setElement(int index, const TokenPtr &token);
void clearElement(int index);
~ConstStrInfo(void) override;
void clear(void) override;
void addElement(const TokenPtr &token) override;
void setElement(int index, const TokenPtr &token) override;
void clearElement(int index) override;

QString **array(void)
std::vector<std::string *> &array(void)
{
return m_value.data();
return m_value;
}

private:
QVector<QString *> m_value; // vector of string instances
std::vector<std::string *> m_value; // vector of string instances
};

class ConstStrDictionary : public InfoDictionary
Expand All @@ -110,53 +109,50 @@ class ConstStrDictionary : public InfoDictionary
m_info.reset(new ConstStrInfo);
}

QString **array(void)
std::vector<std::string *> &array(void)
{
return (dynamic_cast<ConstStrInfo *>(m_info.get()))->array();
}
};


// translate functions
Status inputTranslate(Translator &translator, TokenPtr commandToken,
TokenPtr &token);
Status letTranslate(Translator &translator, TokenPtr commandToken,
TokenPtr &token);
Status printTranslate(Translator &translator, TokenPtr commandToken,
TokenPtr &token);
void inputTranslate(Translator &translator);
void letTranslate(Translator &translator);
void printTranslate(Translator &translator);


// encode functions
quint16 remEncode(ProgramModel *programUnit, const TokenPtr &token);
quint16 constNumEncode(ProgramModel *programUnit, const TokenPtr &token);
quint16 constStrEncode(ProgramModel *programUnit, const TokenPtr &token);
quint16 varDblEncode(ProgramModel *programUnit, const TokenPtr &token);
quint16 varIntEncode(ProgramModel *programUnit, const TokenPtr &token);
quint16 varStrEncode(ProgramModel *programUnit, const TokenPtr &token);
uint16_t remEncode(ProgramModel *programUnit, const TokenPtr &token);
uint16_t constNumEncode(ProgramModel *programUnit, const TokenPtr &token);
uint16_t constStrEncode(ProgramModel *programUnit, const TokenPtr &token);
uint16_t varDblEncode(ProgramModel *programUnit, const TokenPtr &token);
uint16_t varIntEncode(ProgramModel *programUnit, const TokenPtr &token);
uint16_t varStrEncode(ProgramModel *programUnit, const TokenPtr &token);


// operand text functions
const std::string remOperandText(const ProgramModel *programUnit,
quint16 operand);
uint16_t operand);
const std::string constNumOperandText(const ProgramModel *programUnit,
quint16 operand);
uint16_t operand);
const std::string constStrOperandText(const ProgramModel *programUnit,
quint16 operand);
uint16_t operand);
const std::string varDblOperandText(const ProgramModel *programUnit,
quint16 operand);
uint16_t operand);
const std::string varIntOperandText(const ProgramModel *programUnit,
quint16 operand);
uint16_t operand);
const std::string varStrOperandText(const ProgramModel *programUnit,
quint16 operand);
uint16_t operand);


// remove functions
void remRemove(ProgramModel *programUnit, quint16 operand);
void constNumRemove(ProgramModel *programUnit, quint16 operand);
void constStrRemove(ProgramModel *programUnit, quint16 operand);
void varDblRemove(ProgramModel *programUnit, quint16 operand);
void varIntRemove(ProgramModel *programUnit, quint16 operand);
void varStrRemove(ProgramModel *programUnit, quint16 operand);
void remRemove(ProgramModel *programUnit, uint16_t operand);
void constNumRemove(ProgramModel *programUnit, uint16_t operand);
void constStrRemove(ProgramModel *programUnit, uint16_t operand);
void varDblRemove(ProgramModel *programUnit, uint16_t operand);
void varIntRemove(ProgramModel *programUnit, uint16_t operand);
void varStrRemove(ProgramModel *programUnit, uint16_t operand);


// recreate functions
Expand Down

0 comments on commit 7f303f1

Please sign in to comment.