Skip to content

Commit ed26abe

Browse files
committed
Factorice returning false on errors.
1 parent 0a0c00e commit ed26abe

2 files changed

Lines changed: 8 additions & 19 deletions

File tree

src/compiler/parser-actions.cc

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -474,15 +474,9 @@ static bool var_check(parse &s, enum VarType type)
474474
if(!s.get_ident(name))
475475
return false;
476476
if(v.find(name) == v.end())
477-
{
478-
s.error("variable name but got '" + name + "'");
479-
return false;
480-
}
477+
return s.error("variable name but got '" + name + "'");
481478
if((v[name] & 0xFF) != type)
482-
{
483-
s.error(get_vt_name(type) + " and got '" + name + "'");
484-
return false;
485-
}
479+
return s.error(get_vt_name(type) + " and got '" + name + "'");
486480
s.add_text(name);
487481
s.emit_varn(name);
488482
return true;
@@ -635,10 +629,7 @@ static bool SMB_E_LABEL_CREATE(parse &s)
635629
auto &v = s.labels[name];
636630
// Check type
637631
if(!v.is_proc())
638-
{
639-
s.error("new label, got label already defined '" + name + "'");
640-
return false;
641-
}
632+
return s.error("new label, got label already defined '" + name + "'");
642633
// Store variable name
643634
s.add_text(name);
644635
s.last_label = name;
@@ -703,10 +694,7 @@ static bool SMB_E_DATA_SET_SEGMENT(parse &s)
703694
return true;
704695
}
705696
else
706-
{
707-
s.error("segment name");
708-
return false;
709-
}
697+
return s.error("segment name");
710698
}
711699

712700
// Reads a DATA array from a file

src/compiler/parser.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ class parse
243243
throw parse_error("expression too complex for the compiler", pos);
244244
lvl++;
245245
}
246-
void error(std::string str)
246+
bool error(std::string str)
247247
{
248248
if(!str.empty())
249249
{
@@ -262,6 +262,7 @@ class parse
262262
max_pos = pos;
263263
}
264264
}
265+
return false;
265266
}
266267

267268
bool loop_error(std::string str)
@@ -388,9 +389,9 @@ class parse
388389
}
389390
// Add left parenthesis as possible error, provides better messages
390391
if(c == ')')
391-
error("right parenthesis");
392+
return error("right parenthesis");
392393
else if(c == ']')
393-
error("right bracket");
394+
return error("right bracket");
394395
return false;
395396
}
396397
bool eol()

0 commit comments

Comments
 (0)