1 #ifndef _DYLIB_BNFRDR_H
2 #define _DYLIB_BNFRDR_H
206 #define bnfstore 1<<1
207 #define bnfatsgn 1<<2
213 #define bnfexact 1<<8
214 #define bnfdebug 1<<9
225 # define addrToInt(zz_addr_zz) \
226 ((int) (((char *)(zz_addr_zz)) - ((char *)(0))))
263 #define bnfdef_common bnftype_enum type ; \
459 #define bnfref_common bnftype_enum type ; \
461 bnfdef_struct *defn ; \
523 struct bnfref_type1 *
t1 ;
550 #define NULLP (*((char *) 0))
551 #define mksav(qqoff) (*((char *) qqoff))
552 #define mkoff(qqtype,qqfield) (&((qqtype *) 0)->qqfield)
569 #define althd(qqnme) bnfref_struct **qqnme[]
570 #define altcnt(qqcnt) (bnfref_struct **) (qqcnt)
571 #define mkaref(qqref) (bnfref_struct **) (qqref)
573 #define comphd(qqnme) bnfref_struct *qqnme[]
574 #define compcnt(qqcnt) (bnfref_struct *) (qqcnt)
575 #define mkcref(qqref) (bnfref_struct *) (&qqref)
585 #define gdef(qqnme,qqsze,qqlnk,qqcomps) \
586 bnfGdef_struct qqnme = { bnfG, #qqnme, (int) (qqsze), (int) (qqlnk), \
587 (bnfref_struct **) qqcomps }
589 #define npdef(qqnme,qqalts) \
590 bnfNPdef_struct qqnme = { bnfNP, #qqnme, (bnfref_struct ***) qqalts }
592 #define pdef(qqnme,qqalts) \
593 bnfPdef_struct qqnme = { bnfP, #qqnme, (bnfref_struct ***) qqalts }
595 #define tdef(qqnme,qqttype,qqparm,qqval) \
596 bnfTdef_struct qqnme = { bnfT, #qqnme, qqttype, '\0', '\0', \
597 (int) (qqparm), (const char *) (qqval) }
599 #define tqdef(qqnme,qqschr,qqechr,qqval) \
600 bnfTdef_struct qqnme = { bnfT, #qqnme, bnfttQ, (char) qqschr, (char) qqechr,\
601 0, (char *) (qqval) }
603 #define dfdef(qqnme,qqdflgs,qqnmcd,qqnm,qqsavnm,qqndcd,qqnd,qqsavnd,qqoff) \
604 bnfLBdef_struct qqnme = { bnfDS, #qqnme, (flags) (qqdflgs), qqnmcd, qqndcd, \
605 (int) (qqsavnm), (bnfref_struct *) &qqnm, \
606 (int) (qqsavnd), (bnfref_struct *) &qqnd, \
609 #define dbdef(qqnme,qqdflgs,qqnmcd,qqnm,qqsavnm,qqndcd,qqnd,qqsavnd,qqoff) \
610 bnfLBdef_struct qqnme = { bnfDL, #qqnme, (flags) (qqdflgs), qqnmcd, qqndcd, \
611 (int) (qqsavnm), (bnfref_struct *) &qqnm, \
612 (int) (qqsavnd), (bnfref_struct *) &qqnd, \
615 #define rfdef(qqnme,qqdflgs,qqnmcd,qqnm,qqsavnm,qqoff,qqndcd,qqnd,qqsavnd,qqoff2) \
616 bnfLBdef_struct qqnme = { bnfRS, #qqnme, (flags) (qqdflgs), qqnmcd, qqndcd, \
617 (int) (qqsavnm), (bnfref_struct *) &qqnm, \
618 (int) (qqsavnd), (bnfref_struct *) &qqnd, \
619 (int) (qqoff), (int) (qqoff2) }
621 #define rbdef(qqnme,qqdflgs,qqnmcd,qqnm,qqsavnm,qqoff,qqndcd,qqnd,qqsavnd,qqoff2) \
622 bnfLBdef_struct qqnme = { bnfRL, #qqnme, (flags) (qqdflgs), qqnmcd, qqndcd, \
623 (int) (qqsavnm), (bnfref_struct *) &qqnm, \
624 (int) (qqsavnd), (bnfref_struct *) &qqnd, \
625 (int) (qqoff), (int) (qqoff2) }
627 #define idef(qqnme,qqval) \
628 bnfIdef_struct qqnme = { bnfI, #qqnme, (int) (qqval) }
630 #define ldef(qqnme,qqdflgs,qqtxt) \
631 bnfLdef_struct qqnme = { bnfL, #qqnme, (flags) (qqdflgs), (char *) (qqtxt) }
635 #define gref(qqnme,qqref,qquflgs,qqoff,qqsep) \
636 bnfGref_struct qqnme = { bnfG, #qqnme, (bnfdef_struct *) &qqref, \
637 (flags) (qquflgs), (int) (qqoff), \
638 (bnfref_struct *) &qqsep }
640 #define npref(qqnme,qqref,qquflgs,qqsep) \
641 bnfNPref_struct qqnme = { bnfNP, #qqnme, (bnfdef_struct *) &qqref, \
642 (flags) (qquflgs), (int) 0, (bnfref_struct *) &qqsep }
644 #define pref(qqnme,qqref,qquflgs,qqoff,qqsep) \
645 bnfPref_struct qqnme = { bnfP, #qqnme, (bnfdef_struct *) &qqref, \
646 (flags) (qquflgs), (int) (qqoff), \
647 (bnfref_struct *) &qqsep }
649 #define tref(qqnme,qqref,qquflgs,qqoff) \
650 bnfTref_struct qqnme = { bnfT, #qqnme, (bnfdef_struct *) &qqref, \
651 (flags) qquflgs, (int) qqoff }
653 #define dfref(qqnme,qqref) \
654 bnfLBref_struct qqnme = { bnfDS, #qqnme, (bnfdef_struct *) &qqref, (flags) 0 }
656 #define dbref(qqnme,qqref) \
657 bnfLBref_struct qqnme = { bnfDL, #qqnme, (bnfdef_struct *) &qqref, (flags) 0 }
659 #define rfref(qqnme,qqref) \
660 bnfLBref_struct qqnme = { bnfRS, #qqnme, (bnfdef_struct *) &qqref, (flags) 0 }
662 #define rbref(qqnme,qqref) \
663 bnfLBref_struct qqnme = { bnfRL, #qqnme, (bnfdef_struct *) &qqref, (flags) 0 }
665 #define iref(qqnme,qqref,qqoff) \
666 bnfIref_struct qqnme = { bnfI, #qqnme, (bnfdef_struct *) &qqref, \
667 (flags) 0, (int) qqoff }
669 #define lref(qqnme,qqref) \
670 bnfLref_struct qqnme = { bnfL, #qqnme, (bnfdef_struct *) &qqref, (flags) 0 }
680 #define dfrefdbg(qqnme,qqref) \
681 bnfLBref_struct qqnme = { bnfDS, #qqnme, (bnfdef_struct *) &qqref, \
684 #define dbrefdbg(qqnme,qqref) \
685 bnfLBref_struct qqnme = { bnfDL, #qqnme, (bnfdef_struct *) &qqref, \
688 #define rfrefdbg(qqnme,qqref) \
689 bnfLBref_struct qqnme = { bnfRS, #qqnme, (bnfdef_struct *) &qqref, \
692 #define rbrefdbg(qqnme,qqref) \
693 bnfLBref_struct qqnme = { bnfRL, #qqnme, (bnfdef_struct *) &qqref, \
696 #define lrefdbg(qqnme,qqref) \
697 bnfLref_struct qqnme = { bnfL, #qqnme, (bnfdef_struct *) &qqref, \
711 typedef union {
void *
g ;
723 extern void bnfdbgctl(
ioid dbgchn,
bool dbgecho,
bool warnzlbl,
bool numlvl,
726 #define bnfdbgctl(dgbchn,dbgecho,warnzlbl,numlvl,tablvl)
struct bnfref_struct_tag bnfref_struct
struct bnfref_struct_tag ** comps
void prtbnfref(ioid chn, bool echo, bnfref_struct *ref)
struct bnfref_struct_tag * ndsrc
bnfref_struct bnfLref_struct
bnfdef_common flags dflgs
bnfdef_common struct bnfref_struct_tag *** alts
void bnfdbgctl(ioid dbgchn, bool dbgecho, bool warnzlbl, bool numlvl, bool tablvl)
bnfdef_common flags dflgs
struct bnfref_struct_tag * nmsrc
bnfref_struct bnfLBref_struct
bnfNPdef_struct bnfPdef_struct
bool parse(ioid chn, struct bnfref_type3 *bnfid, parse_any *result)
bnfdef_common bnfttype_enum ttype
void prtbnfdef(ioid chn, bool echo, bnfdef_struct *def)