aboutsummaryrefslogtreecommitdiff
path: root/src/amberscript/parser.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/amberscript/parser.cc')
-rw-r--r--src/amberscript/parser.cc10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/amberscript/parser.cc b/src/amberscript/parser.cc
index f3acb79..48ae4ce 100644
--- a/src/amberscript/parser.cc
+++ b/src/amberscript/parser.cc
@@ -850,15 +850,11 @@ Result Parser::ParseBufferInitializerSeries(DataBuffer* buffer,
}
Result Parser::ParseBufferInitializerData(DataBuffer* buffer) {
- auto token = tokenizer_->NextToken();
- if (!token->IsEOL())
- return Result("extra parameters after BUFFER data command");
-
auto& type = buffer->GetDatumType();
bool is_double_type = type.IsFloat() || type.IsDouble();
std::vector<Value> values;
- for (token = tokenizer_->NextToken();; token = tokenizer_->NextToken()) {
+ for (auto token = tokenizer_->NextToken();; token = tokenizer_->NextToken()) {
if (token->IsEOL())
continue;
if (token->IsEOS())
@@ -866,10 +862,10 @@ Result Parser::ParseBufferInitializerData(DataBuffer* buffer) {
if (token->IsString() && token->AsString() == "END")
break;
if (!token->IsInteger() && !token->IsDouble() && !token->IsHex())
- return Result("invalid BUFFER data value");
+ return Result("invalid BUFFER data value: " + token->ToOriginalString());
if (!is_double_type && token->IsDouble())
- return Result("invalid BUFFER data value");
+ return Result("invalid BUFFER data value: " + token->ToOriginalString());
Value v;
if (is_double_type) {