46 lines
923 B
C
46 lines
923 B
C
/*
|
|
* $Id: parser.c,v 1.2 2005-05-22 04:11:54 bacon Exp $
|
|
*/
|
|
|
|
#include <xp/stx/parser.h>
|
|
#include <xp/stx/misc.h>
|
|
|
|
xp_stx_parser_t* xp_stx_parser_open (xp_stx_parser_t* parser)
|
|
{
|
|
if (parser == XP_NULL) {
|
|
parser = (xp_stx_parser_t*)
|
|
xp_stx_malloc (xp_sizeof(xp_stx_parser_t));
|
|
if (parser == XP_NULL) return XP_NULL;
|
|
parser->__malloced = xp_true;
|
|
}
|
|
else parser->__malloced = xp_false;
|
|
|
|
return parser;
|
|
}
|
|
|
|
void xp_stx_parser_close (xp_stx_parser_t* parser)
|
|
{
|
|
if (parser->__malloced) xp_stx_free (parser);
|
|
}
|
|
|
|
static void __emit_code (
|
|
xp_stx_t* stx, xp_stx_word_t method, int value)
|
|
{
|
|
}
|
|
|
|
static void __emit_instruction (
|
|
xp_stx_t* stx, xp_stx_word_t method, int high, int low)
|
|
{
|
|
if (low >= 16) {
|
|
__emit_instruction (stx, method, Extended, high);
|
|
__emit_code (low);
|
|
}
|
|
else __emit_code (high * 16 + low);
|
|
}
|
|
|
|
int xp_stx_parser_parse_method (xp_stx_parser_t* parser, const xp_char_t* text)
|
|
{
|
|
return 0;
|
|
}
|
|
|