1
0
mirror of https://github.com/aportelli/LatAnalyze.git synced 2024-11-14 01:45:35 +00:00

refactoring of string conversion functions

This commit is contained in:
Antonin Portelli 2014-01-22 17:58:26 +01:00
parent 12bbd3ec7e
commit ebb82aeefe
4 changed files with 7 additions and 7 deletions

View File

@ -6,8 +6,8 @@
#include <latan/Global.hpp> #include <latan/Global.hpp>
#endif #endif
#define SRC_LOC strfrom<const char*>(__FUNCTION__) + " at "\ #define SRC_LOC strFrom<const char*>(__FUNCTION__) + " at "\
+ strfrom<const char*>(__FILE__) + ":" + strfrom<int>(__LINE__) + strFrom<const char*>(__FILE__) + ":" + strFrom<int>(__LINE__)
#define LATAN_ERROR(exc,msg) throw(Exceptions::exc(msg,SRC_LOC)) #define LATAN_ERROR(exc,msg) throw(Exceptions::exc(msg,SRC_LOC))
#define DECL_EXC(name,base) \ #define DECL_EXC(name,base) \

View File

@ -26,7 +26,7 @@ namespace Env
// string conversions // string conversions
template <typename T> template <typename T>
static T ato(std::string str) T strTo(std::string str)
{ {
T buf; T buf;
std::istringstream stream(str); std::istringstream stream(str);
@ -37,7 +37,7 @@ static T ato(std::string str)
} }
template <typename T> template <typename T>
static std::string strfrom(T x) std::string strFrom(T x)
{ {
std::ostringstream stream; std::ostringstream stream;

View File

@ -50,8 +50,8 @@ BLANK [ \t]
%% %%
{LMARK} {BEGIN(MARK);} {LMARK} {BEGIN(MARK);}
{INT} {yylval->val_int = ato<int>(yytext); RETTOK(INT);} {INT} {yylval->val_int = strTo<int>(yytext); RETTOK(INT);}
{FLOAT} {yylval->val_double = ato<double>(yytext); RETTOK(FLOAT);} {FLOAT} {yylval->val_double = strTo<double>(yytext); RETTOK(FLOAT);}
({ALPHA}|{DIGIT})+ {strcpy(yylval->val_str,yytext); RETTOK(ID);} ({ALPHA}|{DIGIT})+ {strcpy(yylval->val_str,yytext); RETTOK(ID);}
<MARK>latan_begin {BEGIN(TYPE); RETTOK(OPEN);} <MARK>latan_begin {BEGIN(TYPE); RETTOK(OPEN);}
<MARK>latan_end {BEGIN(TYPE); RETTOK(CLOSE);} <MARK>latan_end {BEGIN(TYPE); RETTOK(CLOSE);}

View File

@ -254,7 +254,7 @@ void MathCompiler::compile(const MathNode& n)
switch (n.getType()) switch (n.getType())
{ {
case MathNode::Type::Constant: case MathNode::Type::Constant:
out_.push_back(new Push(ato<double>(n.getName()))); out_.push_back(new Push(strTo<double>(n.getName())));
break; break;
case MathNode::Type::Variable: case MathNode::Type::Variable:
out_.push_back(new Push(n.getName())); out_.push_back(new Push(n.getName()));