aboutsummaryrefslogtreecommitdiff
path: root/engines/director/lingo/lingo-lex.l
diff options
context:
space:
mode:
Diffstat (limited to 'engines/director/lingo/lingo-lex.l')
-rw-r--r--engines/director/lingo/lingo-lex.l15
1 files changed, 8 insertions, 7 deletions
diff --git a/engines/director/lingo/lingo-lex.l b/engines/director/lingo/lingo-lex.l
index 00750c4523..ec9d6319bd 100644
--- a/engines/director/lingo/lingo-lex.l
+++ b/engines/director/lingo/lingo-lex.l
@@ -267,21 +267,22 @@ whitespace [\t ]
}
if (g_lingo->_builtins.contains(yytext)) {
- if (g_lingo->_builtins[yytext]->type == BLTIN && g_lingo->_builtins[yytext]->parens == false) {
+ int type = g_lingo->_builtins[yytext]->type;
+ if ((type == BLTIN || type == FBLTIN) && g_lingo->_builtins[yytext]->parens == false) {
if (g_lingo->_builtins[yytext]->nargs == 0) {
if (g_lingo->_builtins[yytext]->maxArgs == 0)
- return BLTINNOARGS;
+ return type == BLTIN ? BLTINNOARGS : FBLTINNOARGS;
else if (g_lingo->_builtins[yytext]->maxArgs == 1)
- return BLTINNOARGSORONE;
+ return type == BLTINNOARGSORONE;
else
- error("Incorrect setup for builtin: %s", yytext);
+ return type == BLTINARGLIST;
} else if (g_lingo->_builtins[yytext]->nargs == 1 &&
g_lingo->_builtins[yytext]->maxArgs == 1) {
- return BLTINONEARG;
+ return type == BLTIN ? BLTINONEARG : FBLTINONEARG;
} else if (g_lingo->_builtins[yytext]->nargs == -1) {
- return BLTINARGLIST;
+ return type == BLTINARGLIST;
} else {
- error("Incorrect setup for builtin: %s", yytext);
+ return type == BLTINARGLIST;
}
}
}