/* Copyright (C) Boris Nikolaus, Germany, 1996-1997. All rights reserved. */ typedef char *string; typedef char **strings; typedef int integer; typedef char *ccode; typedef struct bounds_s bounds; typedef struct rhs_s *rhs; typedef struct token_s token; typedef struct nterm_s nterm; typedef struct lhs_s lhs; typedef struct LLPOS { int line; int column; char *file; } LLPOS; typedef struct LLSTATE { LLPOS pos; } LLSTATE; int ll_main(LLSTATE *llin, LLSTATE *llout); int ll_declsect(LLSTATE *llin, LLSTATE *llout); int ll_decl(LLSTATE *llin, LLSTATE *llout); int ll_tokens(LLSTATE *llin, LLSTATE *llout, string llarg_tag); int ll_tokens2(LLSTATE *llin, LLSTATE *llout, string llarg_tag); int ll_token(token *llret, LLSTATE *llin, LLSTATE *llout, string llarg_tag); int ll_nterms(LLSTATE *llin, LLSTATE *llout, string llarg_tag, integer llarg_ext); int ll_nterms2(LLSTATE *llin, LLSTATE *llout, string llarg_tag, integer llarg_ext); int ll_nterm(nterm *llret, LLSTATE *llin, LLSTATE *llout, string llarg_tag); int ll_tags(strings *llret, LLSTATE *llin, LLSTATE *llout); int ll_tag(string *llret, LLSTATE *llin, LLSTATE *llout); int ll_union(LLSTATE *llin, LLSTATE *llout); int ll_state(LLSTATE *llin, LLSTATE *llout); int ll_state1(LLSTATE *llin, LLSTATE *llout); int ll_rulesect(LLSTATE *llin, LLSTATE *llout); int ll_rule(LLSTATE *llin, LLSTATE *llout); int ll_lhs(lhs *llret, LLSTATE *llin, LLSTATE *llout); int ll_rhss(rhs *llret, LLSTATE *llin, LLSTATE *llout); int ll_rhss2(rhs *llret, LLSTATE *llin, LLSTATE *llout); int ll_items(rhs *llret, LLSTATE *llin, LLSTATE *llout); int ll_item(rhs *llret, LLSTATE *llin, LLSTATE *llout); int ll_extension(bounds *llret, LLSTATE *llin, LLSTATE *llout); int ll_lhsargs(string *llret, LLSTATE *llin, LLSTATE *llout, string llarg_ide); int ll_lhsarglist(string *llret, LLSTATE *llin, LLSTATE *llout, strings llarg_tags, string llarg_ide); int ll_args(string *llret, LLSTATE *llin, LLSTATE *llout); int ll_arglist(string *llret, LLSTATE *llin, LLSTATE *llout); int ll_csect(LLSTATE *llin, LLSTATE *llout); typedef union LLSTYPE{ string _string; ccode _ccode; token _token; integer _integer; nterm _nterm; strings _strings; lhs _lhs; rhs _rhs; bounds _bounds; } LLSTYPE; typedef struct LLTERM { int token; LLSTYPE lval; LLPOS pos; } LLTERM; void llscanner(LLTERM **tokens, unsigned *ntokens); int llparser(LLTERM *tokens, unsigned ntokens, LLSTATE *llin, LLSTATE *llout); void llprinterror(FILE *f); void llverror(FILE *f, LLPOS *pos, char *fmt, va_list args); void llerror(FILE *f, LLPOS *pos, char *fmt, ...); int llgettoken(int *token, LLSTYPE *lval, LLPOS *pos); #if LLDEBUG > 0 void lldebug_init(); #endif #define IDENTIFIER 257 #define ARG 258 #define CCODE 259 #define TAGDEF 260 #define PERCENT_PERCENT 261 #define PERCENT_TOKEN 262 #define PERCENT_TYPE 263 #define PERCENT_EXTERNAL 264 #define PERCENT_UNION 265 #define PERCENT_STATE 266 #define PERCENT_START 267 #define PERCENT_PREFIX 268 #define PERCENT_MODULE 269 #define PERCENT_LBRACE 270 #define PERCENT_RBRACE 271