Presumably they mean 'Syntax error' and 'Missing argument(s)'
respectively.
Semantic quibble:
1506-046 and 1506-098 and 1254-004 are probably error-message keys,
which might or might not have internal structure in some terms of
reference.
One is probably best off assuming that there is no internal structure
to them, or that at most the structure is that "the part before the
dash is a magic number that the system implementors reserved for that
particular application, and the part after the dash is the specific key
for that message number within that application."
The semantic quibble is that I would say that the numbers do not
"mean" those particular messages, but rather that for that
particular version of the software, they "indicate" conditions that
correspond to those messages.
For example, if the implementation had a big table of messages,
then the 46th message in that table might be for "Syntax error"
(in that version.) If the implementation happened to print the offset
into the message table as well as the message text, then one might
come to think that the 46 -meant- "Syntax error", but really the 46
was happenstance and the content was what was important.
What I would -suspect- is that those strings 1506-046 and 1506-098 and
1254-004 are keys into an internationalization message table (i18n);
and that the implementation does not have things like
"Syntax error" hard-coded, and instead supplies the key 1506-046
to a message lookup routine which examines the locale to find the
database of messages in the user's language, and looks the key up in
there to find the corresponding text.
If my suspicion is right, then the numbers really don't "mean" anything
and are just arbitrary labels that are used in common by the
implementation and the message tables.