Website Summary Files Commits Branches @commit @diff @stats
path: root / spasm / src / asm / token.cpp
diff options
context:
space:
mode:
Commit0b2444013dfb6bfb0c033b5b827610f6df49ede5 (patch)
Author
 dtrendafilov <trendafilov.dn@gmail.com>
2018-11-25 09:08:47 +0200
Committer
 GitHub <noreply@github.com>
2018-11-25 09:08:47 +0200
Filese6206cd3329067cd48dd0ccf90262f6eaa6cdbbb /spasm/src/asm/token.cpp
IPL-0b2444013dfb6bfb0c033b5b827610f6df49ede5.tar
IPL-0b2444013dfb6bfb0c033b5b827610f6df49ede5.tar.gz
IPL-0b2444013dfb6bfb0c033b5b827610f6df49ede5.zip
Parent156d0957c1b36bba2685fef548a8573e9337309a (diff)
Parent4fca8e8e6c1056aed11437c87e9175232b48c8f4 (diff)
Merge branch 'master' into json-to-ast
1 files changed, 23 insertions, 10 deletions
-rw-r--r--spasm/src/asm/token.cpp33
diff --git a/spasm/src/asm/token.cpp b/spasm/src/asm/token.cpp
index 4f298cf..fa612e3 100644
--- a/spasm/src/asm/token.cpp
+++ b/spasm/src/asm/token.cpp
@@ -22,20 +22,33 @@ Token::Token(Token::Token_type type,
const char* end)
: _type(type), _lineno(lineno)
{
- if (_type == Integer || _type == XInteger)
+ switch (_type)
{
- _value_int = strtol(start, NULL, 0);
- }
- else if (_type == Ident)
- {
- if (end)
+ case Integer:
+ case XInteger:
+ {
+ _value_int = strtol(start, NULL, 0);
+ break;
+ }
+ case FloatingPoint:
{
- _value_str = std::string(start, end);
+ _value_double = strtod(start, NULL);
+ break;
}
- else
+ case Ident:
{
- _value_str = std::string(start);
+ if (end)
+ {
+ _value_str = std::string(start, end);
+ }
+ else
+ {
+ _value_str = std::string(start);
+ }
+ break;
}
+ default:
+ break;
}
}
@@ -44,7 +57,7 @@ Token::Token_type Token::type() const
return _type;
}
-int Token::value_int() const
+int64_t Token::value_int() const
{
return _value_int;
}