changed moo_setsynerrbfmt() and moo_setsynerrufmt() to set the error message to begin with 'syntax error'
This commit is contained in:
parent
3daeab66b9
commit
81a7c9fc82
346
moo/lib/comp.c
346
moo/lib/comp.c
File diff suppressed because it is too large
Load Diff
@ -349,18 +349,27 @@ void moo_seterrwithsyserr (moo_t* moo, int syserr)
|
|||||||
|
|
||||||
#if defined(MOO_INCLUDE_COMPILER)
|
#if defined(MOO_INCLUDE_COMPILER)
|
||||||
|
|
||||||
void hcl_setsynerrbfmt (moo_t* moo, moo_synerrnum_t num, const moo_ioloc_t* loc, const moo_oocs_t* tgt, const moo_bch_t* msgfmt, ...)
|
void moo_setsynerrbfmt (moo_t* moo, moo_synerrnum_t num, const moo_ioloc_t* loc, const moo_oocs_t* tgt, const moo_bch_t* msgfmt, ...)
|
||||||
{
|
{
|
||||||
|
static moo_bch_t syntax_error[] = "syntax error - ";
|
||||||
|
|
||||||
if (msgfmt)
|
if (msgfmt)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
int i, selen;
|
||||||
|
|
||||||
va_start (ap, msgfmt);
|
va_start (ap, msgfmt);
|
||||||
moo_seterrbfmtv (moo, MOO_ESYNERR, msgfmt, ap);
|
moo_seterrbfmtv (moo, MOO_ESYNERR, msgfmt, ap);
|
||||||
va_end (ap);
|
va_end (ap);
|
||||||
|
|
||||||
|
selen = MOO_COUNTOF(syntax_error) - 1;
|
||||||
|
MOO_MEMMOVE (&moo->errmsg.buf[selen], &moo->errmsg.buf[0], MOO_SIZEOF(moo->errmsg.buf[0]) * (MOO_COUNTOF(moo->errmsg.buf) - selen));
|
||||||
|
for (i = 0; i < selen; i++) moo->errmsg.buf[i] = syntax_error[i];
|
||||||
|
moo->errmsg.buf[MOO_COUNTOF(moo->errmsg.buf) - 1] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
moo_seterrbfmt (moo, MOO_ESYNERR, "syntax error - %js", synerr_to_errstr(num));
|
moo_seterrbfmt (moo, MOO_ESYNERR, "%hs%js", syntax_error, synerr_to_errstr(num));
|
||||||
}
|
}
|
||||||
moo->c->synerr.num = num;
|
moo->c->synerr.num = num;
|
||||||
|
|
||||||
@ -370,11 +379,18 @@ void hcl_setsynerrbfmt (moo_t* moo, moo_synerrnum_t num, const moo_ioloc_t* loc,
|
|||||||
* moo->c->tok.loc due to 'const' prefixed to loc. */
|
* moo->c->tok.loc due to 'const' prefixed to loc. */
|
||||||
/*moo->c->synerr.loc = loc? *loc: moo->c->tok.loc;*/
|
/*moo->c->synerr.loc = loc? *loc: moo->c->tok.loc;*/
|
||||||
if (loc)
|
if (loc)
|
||||||
|
{
|
||||||
moo->c->synerr.loc = *loc;
|
moo->c->synerr.loc = *loc;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
moo->c->synerr.loc = moo->c->tok.loc;
|
moo->c->synerr.loc = moo->c->tok.loc;
|
||||||
|
}
|
||||||
|
|
||||||
if (tgt) moo->c->synerr.tgt = *tgt;
|
if (tgt)
|
||||||
|
{
|
||||||
|
moo->c->synerr.tgt = *tgt;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
moo->c->synerr.tgt.ptr = MOO_NULL;
|
moo->c->synerr.tgt.ptr = MOO_NULL;
|
||||||
@ -382,18 +398,27 @@ void hcl_setsynerrbfmt (moo_t* moo, moo_synerrnum_t num, const moo_ioloc_t* loc,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void hcl_setsynerrufmt (moo_t* moo, moo_synerrnum_t num, const moo_ioloc_t* loc, const moo_oocs_t* tgt, const moo_uch_t* msgfmt, ...)
|
void moo_setsynerrufmt (moo_t* moo, moo_synerrnum_t num, const moo_ioloc_t* loc, const moo_oocs_t* tgt, const moo_uch_t* msgfmt, ...)
|
||||||
{
|
{
|
||||||
|
static moo_bch_t syntax_error[] = "syntax error - ";
|
||||||
|
|
||||||
if (msgfmt)
|
if (msgfmt)
|
||||||
{
|
{
|
||||||
va_list ap;
|
va_list ap;
|
||||||
|
int i, selen;
|
||||||
|
|
||||||
va_start (ap, msgfmt);
|
va_start (ap, msgfmt);
|
||||||
moo_seterrufmtv (moo, MOO_ESYNERR, msgfmt, ap);
|
moo_seterrufmtv (moo, MOO_ESYNERR, msgfmt, ap);
|
||||||
va_end (ap);
|
va_end (ap);
|
||||||
|
|
||||||
|
selen = MOO_COUNTOF(syntax_error) - 1;
|
||||||
|
MOO_MEMMOVE (&moo->errmsg.buf[selen], &moo->errmsg.buf[0], MOO_SIZEOF(moo->errmsg.buf[0]) * (MOO_COUNTOF(moo->errmsg.buf) - selen));
|
||||||
|
for (i = 0; i < selen; i++) moo->errmsg.buf[i] = syntax_error[i];
|
||||||
|
moo->errmsg.buf[MOO_COUNTOF(moo->errmsg.buf) - 1] = '\0';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
moo_seterrbfmt (moo, MOO_ESYNERR, "syntax error - %js", synerr_to_errstr(num));
|
moo_seterrbfmt (moo, MOO_ESYNERR, "%hs%js", syntax_error, synerr_to_errstr(num));
|
||||||
}
|
}
|
||||||
moo->c->synerr.num = num;
|
moo->c->synerr.num = num;
|
||||||
|
|
||||||
@ -403,11 +428,18 @@ void hcl_setsynerrufmt (moo_t* moo, moo_synerrnum_t num, const moo_ioloc_t* loc,
|
|||||||
* moo->c->tok.loc due to 'const' prefixed to loc. */
|
* moo->c->tok.loc due to 'const' prefixed to loc. */
|
||||||
/*moo->c->synerr.loc = loc? *loc: moo->c->tok.loc;*/
|
/*moo->c->synerr.loc = loc? *loc: moo->c->tok.loc;*/
|
||||||
if (loc)
|
if (loc)
|
||||||
|
{
|
||||||
moo->c->synerr.loc = *loc;
|
moo->c->synerr.loc = *loc;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
moo->c->synerr.loc = moo->c->tok.loc;
|
moo->c->synerr.loc = moo->c->tok.loc;
|
||||||
|
}
|
||||||
if (tgt) moo->c->synerr.tgt = *tgt;
|
|
||||||
|
if (tgt)
|
||||||
|
{
|
||||||
|
moo->c->synerr.tgt = *tgt;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
moo->c->synerr.tgt.ptr = MOO_NULL;
|
moo->c->synerr.tgt.ptr = MOO_NULL;
|
||||||
@ -415,9 +447,9 @@ void hcl_setsynerrufmt (moo_t* moo, moo_synerrnum_t num, const moo_ioloc_t* loc,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void hcl_setsynerr (moo_t* moo, moo_synerrnum_t num, const moo_ioloc_t* loc, const moo_oocs_t* tgt)
|
void moo_setsynerr (moo_t* moo, moo_synerrnum_t num, const moo_ioloc_t* loc, const moo_oocs_t* tgt)
|
||||||
{
|
{
|
||||||
hcl_setsynerrbfmt (moo, num, loc, tgt, MOO_NULL);
|
moo_setsynerrbfmt (moo, num, loc, tgt, MOO_NULL);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -417,7 +417,7 @@ static MOO_INLINE moo_ooi_t close_input (moo_t* moo, moo_ioarg_t* arg)
|
|||||||
|
|
||||||
static MOO_INLINE moo_ooi_t read_input (moo_t* moo, moo_ioarg_t* arg)
|
static MOO_INLINE moo_ooi_t read_input (moo_t* moo, moo_ioarg_t* arg)
|
||||||
{
|
{
|
||||||
/*xtn_t* xtn = hcl_getxtn(hcl);*/
|
/*xtn_t* xtn = moo_getxtn(hcl);*/
|
||||||
bb_t* bb;
|
bb_t* bb;
|
||||||
moo_oow_t bcslen, ucslen, remlen;
|
moo_oow_t bcslen, ucslen, remlen;
|
||||||
int x;
|
int x;
|
||||||
|
@ -994,7 +994,7 @@ void moo_seterrufmtv (
|
|||||||
|
|
||||||
|
|
||||||
#if defined(MOO_INCLUDE_COMPILER)
|
#if defined(MOO_INCLUDE_COMPILER)
|
||||||
void hcl_setsynerrbfmt (
|
void moo_setsynerrbfmt (
|
||||||
moo_t* moo,
|
moo_t* moo,
|
||||||
moo_synerrnum_t num,
|
moo_synerrnum_t num,
|
||||||
const moo_ioloc_t* loc,
|
const moo_ioloc_t* loc,
|
||||||
@ -1003,7 +1003,7 @@ void hcl_setsynerrbfmt (
|
|||||||
...
|
...
|
||||||
);
|
);
|
||||||
|
|
||||||
void hcl_setsynerrufmt (
|
void moo_setsynerrufmt (
|
||||||
moo_t* moo,
|
moo_t* moo,
|
||||||
moo_synerrnum_t num,
|
moo_synerrnum_t num,
|
||||||
const moo_ioloc_t* loc,
|
const moo_ioloc_t* loc,
|
||||||
@ -1012,7 +1012,7 @@ void hcl_setsynerrufmt (
|
|||||||
...
|
...
|
||||||
);
|
);
|
||||||
|
|
||||||
void hcl_setsynerr (
|
void moo_setsynerr (
|
||||||
moo_t* moo,
|
moo_t* moo,
|
||||||
moo_synerrnum_t num,
|
moo_synerrnum_t num,
|
||||||
const moo_ioloc_t* loc,
|
const moo_ioloc_t* loc,
|
||||||
|
Loading…
Reference in New Issue
Block a user