Website Summary Files Commits Branches @commit @diff @stats
path: root / spasm / src / asm / token.cpp
diff options
context:
space:
mode:
Commit3ce342b97b6c22b7ce6dded7be7b5c6bf9edcc04 (patch)
Author
 Dimitar Trendafilov <dimitar@coherent-labs.com>
2018-11-19 23:49:15 +0200
Committer
 Dimitar Trendafilov <dimitar@coherent-labs.com>
2018-11-21 21:20:34 +0200
Files8a6bc5aa0fb2fcc3c9589e53b91bc316141c7cda /spasm/src/asm/token.cpp
IPL-3ce342b97b6c22b7ce6dded7be7b5c6bf9edcc04.tar
IPL-3ce342b97b6c22b7ce6dded7be7b5c6bf9edcc04.tar.gz
IPL-3ce342b97b6c22b7ce6dded7be7b5c6bf9edcc04.zip
Parent36711f22e4d3449d75f8412654330a7ca5c3275a (diff)
Support for doubles in the assembler
1 files changed, 22 insertions, 9 deletions
-rw-r--r--spasm/src/asm/token.cpp31
diff --git a/spasm/src/asm/token.cpp b/spasm/src/asm/token.cpp
index 4f298cf..3f8980d 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;
}
}