another round of internal name changes
This commit is contained in:
parent
df924338df
commit
238365e198
@ -644,10 +644,10 @@ struct hcl_compiler_t
|
|||||||
hcl_cb_t* cbp;
|
hcl_cb_t* cbp;
|
||||||
|
|
||||||
/* input handler */
|
/* input handler */
|
||||||
hcl_io_impl_t reader;
|
hcl_io_impl_t sci_rdr;
|
||||||
|
|
||||||
/* static input data buffer */
|
/* static input data buffer */
|
||||||
hcl_io_sciarg_t sciarg;
|
hcl_io_sciarg_t sci_arg;
|
||||||
|
|
||||||
/* pointer to the current input data. initially, it points to &inarg */
|
/* pointer to the current input data. initially, it points to &inarg */
|
||||||
hcl_io_sciarg_t* curinp;
|
hcl_io_sciarg_t* curinp;
|
||||||
@ -661,10 +661,10 @@ struct hcl_compiler_t
|
|||||||
|
|
||||||
/* unget buffer */
|
/* unget buffer */
|
||||||
hcl_lxc_t ungot[10];
|
hcl_lxc_t ungot[10];
|
||||||
int nungots;
|
int nungots;
|
||||||
|
|
||||||
/* the last token read */
|
/* the last token read */
|
||||||
hcl_tok_t tok;
|
hcl_tok_t tok;
|
||||||
hcl_link_t* sr_names;
|
hcl_link_t* sr_names;
|
||||||
|
|
||||||
hcl_synerr_t synerr;
|
hcl_synerr_t synerr;
|
||||||
|
20
lib/hcl.h
20
lib/hcl.h
@ -1287,7 +1287,7 @@ struct hcl_io_inarg_t
|
|||||||
/**
|
/**
|
||||||
* [OUT] place the number of characters read here for #HCL_IO_READ
|
* [OUT] place the number of characters read here for #HCL_IO_READ
|
||||||
*/
|
*/
|
||||||
hcl_oow_t xlen;
|
hcl_oow_t xlen;
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef struct hcl_io_outarg_t hcl_io_outarg_t;
|
typedef struct hcl_io_outarg_t hcl_io_outarg_t;
|
||||||
@ -1299,7 +1299,7 @@ struct hcl_io_outarg_t
|
|||||||
* All subsequent operations on the stream see this field as set
|
* All subsequent operations on the stream see this field as set
|
||||||
* during opening.
|
* during opening.
|
||||||
*/
|
*/
|
||||||
void* handle;
|
void* handle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [IN] the pointer to the beginning of the character/byte string
|
* [IN] the pointer to the beginning of the character/byte string
|
||||||
@ -1307,18 +1307,18 @@ struct hcl_io_outarg_t
|
|||||||
* hcl_ooch_t* for HCL_IO_WRITE
|
* hcl_ooch_t* for HCL_IO_WRITE
|
||||||
* hcl_bch_t* or hcl_uint8_t* for HCL_IO_WRITE_BYTES
|
* hcl_bch_t* or hcl_uint8_t* for HCL_IO_WRITE_BYTES
|
||||||
*/
|
*/
|
||||||
void* ptr;
|
void* ptr;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [IN] total number of characters/bytes to write
|
* [IN] total number of characters/bytes to write
|
||||||
*/
|
*/
|
||||||
hcl_oow_t len;
|
hcl_oow_t len;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [OUT] place the number of characters/bytes written here for
|
* [OUT] place the number of characters/bytes written here for
|
||||||
* HCL_IO_WRITE or HCL_IO_WRITE_BYTES
|
* HCL_IO_WRITE or HCL_IO_WRITE_BYTES
|
||||||
*/
|
*/
|
||||||
hcl_oow_t xlen;
|
hcl_oow_t xlen;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1327,7 +1327,7 @@ struct hcl_io_outarg_t
|
|||||||
*/
|
*/
|
||||||
typedef int (*hcl_io_impl_t) (
|
typedef int (*hcl_io_impl_t) (
|
||||||
hcl_t* hcl,
|
hcl_t* hcl,
|
||||||
hcl_io_cmd_t cmd,
|
hcl_io_cmd_t cmd,
|
||||||
void* arg /* one of hcl_io_sciarg_t*, hcl_io_inarg_t*, hcl_io_outarg_t* */
|
void* arg /* one of hcl_io_sciarg_t*, hcl_io_inarg_t*, hcl_io_outarg_t* */
|
||||||
);
|
);
|
||||||
|
|
||||||
@ -2241,10 +2241,10 @@ HCL_EXPORT hcl_ooch_t* hcl_readbasesrraw (
|
|||||||
);
|
);
|
||||||
|
|
||||||
HCL_EXPORT int hcl_attachio (
|
HCL_EXPORT int hcl_attachio (
|
||||||
hcl_t* hcl,
|
hcl_t* hcl,
|
||||||
hcl_io_impl_t reader, /* source stream heandler */
|
hcl_io_impl_t sci_rdr, /* source code input handler */
|
||||||
hcl_io_impl_t scanner, /* runtime input stream handler */
|
hcl_io_impl_t scanner, /* user data input handler */
|
||||||
hcl_io_impl_t printer /* runtime output stream handler */
|
hcl_io_impl_t printer /* user data output handler */
|
||||||
);
|
);
|
||||||
|
|
||||||
HCL_EXPORT int hcl_attachiostdwithbcstr (
|
HCL_EXPORT int hcl_attachiostdwithbcstr (
|
||||||
|
70
lib/read.c
70
lib/read.c
@ -446,7 +446,7 @@ static int _get_char (hcl_t* hcl, hcl_io_sciarg_t* inp)
|
|||||||
|
|
||||||
if (inp->b.pos >= inp->b.len)
|
if (inp->b.pos >= inp->b.len)
|
||||||
{
|
{
|
||||||
if (hcl->c->reader(hcl, HCL_IO_READ, inp) <= -1) return -1;
|
if (hcl->c->sci_rdr(hcl, HCL_IO_READ, inp) <= -1) return -1;
|
||||||
|
|
||||||
if (inp->xlen <= 0)
|
if (inp->xlen <= 0)
|
||||||
{
|
{
|
||||||
@ -893,18 +893,18 @@ static int feed_begin_include (hcl_t* hcl)
|
|||||||
/*arg->nl = '\0';*/
|
/*arg->nl = '\0';*/
|
||||||
arg->includer = hcl->c->curinp;
|
arg->includer = hcl->c->curinp;
|
||||||
|
|
||||||
if (hcl->c->reader(hcl, HCL_IO_OPEN, arg) <= -1)
|
if (hcl->c->sci_rdr(hcl, HCL_IO_OPEN, arg) <= -1)
|
||||||
{
|
{
|
||||||
const hcl_ooch_t* org_errmsg = hcl_backuperrmsg(hcl);
|
const hcl_ooch_t* org_errmsg = hcl_backuperrmsg(hcl);
|
||||||
hcl_setsynerrbfmt (hcl, HCL_SYNERR_INCLUDE, TOKEN_LOC(hcl), TOKEN_NAME(hcl), "unable to include %js - %js", io_name, org_errmsg);
|
hcl_setsynerrbfmt (hcl, HCL_SYNERR_INCLUDE, TOKEN_LOC(hcl), TOKEN_NAME(hcl), "unable to include %js - %js", io_name, org_errmsg);
|
||||||
goto oops;
|
goto oops;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (arg->includer == &hcl->c->sciarg) /* top-level include */
|
if (arg->includer == &hcl->c->sci_arg) /* top-level include */
|
||||||
{
|
{
|
||||||
/* TODO: remove hcl_readbasesrchar() and clean up this part.
|
/* TODO: remove hcl_readbasesrchar() and clean up this part.
|
||||||
* hcl_readbasesrchar(), if called in the middle of feeds,
|
* hcl_readbasesrchar(), if called in the middle of feeds,
|
||||||
* updates hcl->c->sciarg's line and colm. so use a separate
|
* updates hcl->c->sci_arg's line and colm. so use a separate
|
||||||
* field to store the current feed location for now */
|
* field to store the current feed location for now */
|
||||||
hcl->c->feed.lx._oloc = hcl->c->feed.lx.loc;
|
hcl->c->feed.lx._oloc = hcl->c->feed.lx.loc;
|
||||||
}
|
}
|
||||||
@ -934,12 +934,12 @@ static int feed_end_include (hcl_t* hcl)
|
|||||||
int x;
|
int x;
|
||||||
hcl_io_sciarg_t* cur;
|
hcl_io_sciarg_t* cur;
|
||||||
|
|
||||||
if (hcl->c->curinp == &hcl->c->sciarg) return 0; /* no include */
|
if (hcl->c->curinp == &hcl->c->sci_arg) return 0; /* no include */
|
||||||
|
|
||||||
/* if it is an included file, close it and
|
/* if it is an included file, close it and
|
||||||
* retry to read a character from an outer file */
|
* retry to read a character from an outer file */
|
||||||
|
|
||||||
x = hcl->c->reader(hcl, HCL_IO_CLOSE, hcl->c->curinp);
|
x = hcl->c->sci_rdr(hcl, HCL_IO_CLOSE, hcl->c->curinp);
|
||||||
|
|
||||||
/* if closing has failed, still destroy the sio structure
|
/* if closing has failed, still destroy the sio structure
|
||||||
* first as normal and return the failure below. this way,
|
* first as normal and return the failure below. this way,
|
||||||
@ -948,7 +948,7 @@ static int feed_end_include (hcl_t* hcl)
|
|||||||
cur = hcl->c->curinp;
|
cur = hcl->c->curinp;
|
||||||
hcl->c->curinp = hcl->c->curinp->includer;
|
hcl->c->curinp = hcl->c->curinp->includer;
|
||||||
|
|
||||||
if (hcl->c->curinp == &hcl->c->sciarg)
|
if (hcl->c->curinp == &hcl->c->sci_arg)
|
||||||
{
|
{
|
||||||
hcl->c->feed.lx.loc = hcl->c->feed.lx._oloc;
|
hcl->c->feed.lx.loc = hcl->c->feed.lx._oloc;
|
||||||
}
|
}
|
||||||
@ -2365,13 +2365,13 @@ static int feed_from_includee (hcl_t* hcl)
|
|||||||
{
|
{
|
||||||
int x;
|
int x;
|
||||||
|
|
||||||
HCL_ASSERT (hcl, hcl->c->curinp != HCL_NULL && hcl->c->curinp != &hcl->c->sciarg);
|
HCL_ASSERT (hcl, hcl->c->curinp != HCL_NULL && hcl->c->curinp != &hcl->c->sci_arg);
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if (hcl->c->curinp->b.pos >= hcl->c->curinp->b.len)
|
if (hcl->c->curinp->b.pos >= hcl->c->curinp->b.len)
|
||||||
{
|
{
|
||||||
if (hcl->c->reader(hcl, HCL_IO_READ, hcl->c->curinp) <= -1)
|
if (hcl->c->sci_rdr(hcl, HCL_IO_READ, hcl->c->curinp) <= -1)
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -2406,7 +2406,7 @@ static int feed_from_includee (hcl_t* hcl)
|
|||||||
if (feed_begin_include(hcl) <= -1) return -1;
|
if (feed_begin_include(hcl) <= -1) return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
while (hcl->c->curinp != &hcl->c->sciarg);
|
while (hcl->c->curinp != &hcl->c->sci_arg);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -2465,7 +2465,7 @@ int hcl_feed (hcl_t* hcl, const hcl_ooch_t* data, hcl_oow_t len)
|
|||||||
hcl->c->feed.rd.do_include_file = 0;
|
hcl->c->feed.rd.do_include_file = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hcl->c->curinp && hcl->c->curinp != &hcl->c->sciarg && feed_from_includee(hcl) <= -1)
|
if (hcl->c->curinp && hcl->c->curinp != &hcl->c->sci_arg && feed_from_includee(hcl) <= -1)
|
||||||
{
|
{
|
||||||
/* TODO: return the number of processed characters via an argument? */
|
/* TODO: return the number of processed characters via an argument? */
|
||||||
goto oops;
|
goto oops;
|
||||||
@ -2786,7 +2786,7 @@ static int init_compiler (hcl_t* hcl)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int hcl_attachio (hcl_t* hcl, hcl_io_impl_t reader, hcl_io_impl_t scanner, hcl_io_impl_t printer)
|
int hcl_attachio (hcl_t* hcl, hcl_io_impl_t sci_rdr, hcl_io_impl_t scanner, hcl_io_impl_t printer)
|
||||||
{
|
{
|
||||||
int n;
|
int n;
|
||||||
int inited_compiler = 0;
|
int inited_compiler = 0;
|
||||||
@ -2800,7 +2800,7 @@ int hcl_attachio (hcl_t* hcl, hcl_io_impl_t reader, hcl_io_impl_t scanner, hcl_i
|
|||||||
inited_compiler = 1;
|
inited_compiler = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (reader)
|
if (sci_rdr)
|
||||||
{
|
{
|
||||||
/* The name field and the includer field are HCL_NULL
|
/* The name field and the includer field are HCL_NULL
|
||||||
* for the main stream */
|
* for the main stream */
|
||||||
@ -2809,7 +2809,7 @@ int hcl_attachio (hcl_t* hcl, hcl_io_impl_t reader, hcl_io_impl_t scanner, hcl_i
|
|||||||
new_sciarg.colm = 1;
|
new_sciarg.colm = 1;
|
||||||
|
|
||||||
/* open the top-level source input stream */
|
/* open the top-level source input stream */
|
||||||
n = reader(hcl, HCL_IO_OPEN, &new_sciarg);
|
n = sci_rdr(hcl, HCL_IO_OPEN, &new_sciarg);
|
||||||
if (n <= -1) goto oops;
|
if (n <= -1) goto oops;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2819,7 +2819,7 @@ int hcl_attachio (hcl_t* hcl, hcl_io_impl_t reader, hcl_io_impl_t scanner, hcl_i
|
|||||||
n = scanner(hcl, HCL_IO_OPEN, &new_inarg);
|
n = scanner(hcl, HCL_IO_OPEN, &new_inarg);
|
||||||
if (n <= -1)
|
if (n <= -1)
|
||||||
{
|
{
|
||||||
reader (hcl, HCL_IO_CLOSE, &new_sciarg);
|
sci_rdr (hcl, HCL_IO_CLOSE, &new_sciarg);
|
||||||
goto oops;
|
goto oops;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2832,20 +2832,20 @@ int hcl_attachio (hcl_t* hcl, hcl_io_impl_t reader, hcl_io_impl_t scanner, hcl_i
|
|||||||
if (n <= -1)
|
if (n <= -1)
|
||||||
{
|
{
|
||||||
if (scanner) scanner (hcl, HCL_IO_CLOSE, &new_inarg);
|
if (scanner) scanner (hcl, HCL_IO_CLOSE, &new_inarg);
|
||||||
if (reader) reader (hcl, HCL_IO_CLOSE, &new_sciarg);
|
if (sci_rdr) sci_rdr (hcl, HCL_IO_CLOSE, &new_sciarg);
|
||||||
goto oops;
|
goto oops;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (reader)
|
if (sci_rdr)
|
||||||
{
|
{
|
||||||
if (hcl->c->reader)
|
if (hcl->c->sci_rdr)
|
||||||
{
|
{
|
||||||
/* close the old source input stream */
|
/* close the old source input stream */
|
||||||
hcl->c->reader (hcl, HCL_IO_CLOSE, &hcl->c->sciarg);
|
hcl->c->sci_rdr (hcl, HCL_IO_CLOSE, &hcl->c->sci_arg);
|
||||||
}
|
}
|
||||||
hcl->c->reader = reader;
|
hcl->c->sci_rdr = sci_rdr;
|
||||||
hcl->c->sciarg = new_sciarg;
|
hcl->c->sci_arg = new_sciarg;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scanner)
|
if (scanner)
|
||||||
@ -2870,7 +2870,7 @@ int hcl_attachio (hcl_t* hcl, hcl_io_impl_t reader, hcl_io_impl_t scanner, hcl_i
|
|||||||
hcl->io.outarg = new_outarg;
|
hcl->io.outarg = new_outarg;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (reader)
|
if (sci_rdr)
|
||||||
{
|
{
|
||||||
/* clear unneeded source stream names */
|
/* clear unneeded source stream names */
|
||||||
/*clear_sr_names (hcl); <---- TODO: tricky to clean up here */
|
/*clear_sr_names (hcl); <---- TODO: tricky to clean up here */
|
||||||
@ -2878,7 +2878,7 @@ int hcl_attachio (hcl_t* hcl, hcl_io_impl_t reader, hcl_io_impl_t scanner, hcl_i
|
|||||||
/* initialize some other key fields */
|
/* initialize some other key fields */
|
||||||
hcl->c->nungots = 0;
|
hcl->c->nungots = 0;
|
||||||
/* the source stream is open. set it as the current input stream */
|
/* the source stream is open. set it as the current input stream */
|
||||||
hcl->c->curinp = &hcl->c->sciarg;
|
hcl->c->curinp = &hcl->c->sci_arg;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -2901,14 +2901,14 @@ void hcl_detachio (hcl_t* hcl)
|
|||||||
|
|
||||||
if (hcl->c)
|
if (hcl->c)
|
||||||
{
|
{
|
||||||
if (hcl->c->reader)
|
if (hcl->c->sci_rdr)
|
||||||
{
|
{
|
||||||
while (hcl->c->curinp != &hcl->c->sciarg)
|
while (hcl->c->curinp != &hcl->c->sci_arg)
|
||||||
{
|
{
|
||||||
hcl_io_sciarg_t* prev;
|
hcl_io_sciarg_t* prev;
|
||||||
|
|
||||||
/* nothing much to do about a close error */
|
/* nothing much to do about a close error */
|
||||||
hcl->c->reader (hcl, HCL_IO_CLOSE, hcl->c->curinp);
|
hcl->c->sci_rdr (hcl, HCL_IO_CLOSE, hcl->c->curinp);
|
||||||
|
|
||||||
prev = hcl->c->curinp->includer;
|
prev = hcl->c->curinp->includer;
|
||||||
HCL_ASSERT (hcl, hcl->c->curinp->name != HCL_NULL);
|
HCL_ASSERT (hcl, hcl->c->curinp->name != HCL_NULL);
|
||||||
@ -2916,8 +2916,8 @@ void hcl_detachio (hcl_t* hcl)
|
|||||||
hcl->c->curinp = prev;
|
hcl->c->curinp = prev;
|
||||||
}
|
}
|
||||||
|
|
||||||
hcl->c->reader (hcl, HCL_IO_CLOSE, hcl->c->curinp);
|
hcl->c->sci_rdr (hcl, HCL_IO_CLOSE, hcl->c->curinp);
|
||||||
hcl->c->reader = HCL_NULL; /* ready for another attachment */
|
hcl->c->sci_rdr = HCL_NULL; /* ready for another attachment */
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -2937,8 +2937,8 @@ void hcl_detachio (hcl_t* hcl)
|
|||||||
|
|
||||||
void hcl_setbasesrloc (hcl_t* hcl, hcl_oow_t line, hcl_oow_t colm)
|
void hcl_setbasesrloc (hcl_t* hcl, hcl_oow_t line, hcl_oow_t colm)
|
||||||
{
|
{
|
||||||
hcl->c->sciarg.line = line;
|
hcl->c->sci_arg.line = line;
|
||||||
hcl->c->sciarg.colm = colm;
|
hcl->c->sci_arg.colm = colm;
|
||||||
}
|
}
|
||||||
|
|
||||||
hcl_lxc_t* hcl_readbasesrchar (hcl_t* hcl)
|
hcl_lxc_t* hcl_readbasesrchar (hcl_t* hcl)
|
||||||
@ -2946,9 +2946,9 @@ hcl_lxc_t* hcl_readbasesrchar (hcl_t* hcl)
|
|||||||
/* read a character using the base input stream. the caller must care extra
|
/* read a character using the base input stream. the caller must care extra
|
||||||
* care when using this function. this function reads the main stream regardless
|
* care when using this function. this function reads the main stream regardless
|
||||||
* of the inclusion status and ignores the ungot characters. */
|
* of the inclusion status and ignores the ungot characters. */
|
||||||
int n = _get_char(hcl, &hcl->c->sciarg);
|
int n = _get_char(hcl, &hcl->c->sci_arg);
|
||||||
if (n <= -1) return HCL_NULL;
|
if (n <= -1) return HCL_NULL;
|
||||||
return &hcl->c->sciarg.lxc;
|
return &hcl->c->sci_arg.lxc;
|
||||||
}
|
}
|
||||||
|
|
||||||
hcl_ooch_t* hcl_readbasesrraw (hcl_t* hcl, hcl_oow_t* xlen)
|
hcl_ooch_t* hcl_readbasesrraw (hcl_t* hcl, hcl_oow_t* xlen)
|
||||||
@ -2959,7 +2959,7 @@ hcl_ooch_t* hcl_readbasesrraw (hcl_t* hcl, hcl_oow_t* xlen)
|
|||||||
|
|
||||||
HCL_ASSERT (hcl, hcl->c != HCL_NULL); /* call hio_attachio() or hio_attachiostd() with proper arguments first */
|
HCL_ASSERT (hcl, hcl->c != HCL_NULL); /* call hio_attachio() or hio_attachiostd() with proper arguments first */
|
||||||
|
|
||||||
if (hcl->c->reader(hcl, HCL_IO_READ, &hcl->c->sciarg) <= -1) return HCL_NULL;
|
if (hcl->c->sci_rdr(hcl, HCL_IO_READ, &hcl->c->sci_arg) <= -1) return HCL_NULL;
|
||||||
*xlen = hcl->c->sciarg.xlen;
|
*xlen = hcl->c->sci_arg.xlen;
|
||||||
return hcl->c->sciarg.buf;
|
return hcl->c->sci_arg.buf;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user