Mercurial > ~dholland > hg > ag > index.cgi
diff anagram/agcore/bpu.h @ 0:13d2b8934445
Import AnaGram (near-)release tree into Mercurial.
author | David A. Holland |
---|---|
date | Sat, 22 Dec 2007 17:52:45 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/anagram/agcore/bpu.h Sat Dec 22 17:52:45 2007 -0500 @@ -0,0 +1,39 @@ +/* + * AnaGram, A System for Syntax Directed Programming + * Copyright 1993-1999 Parsifal Software. All Rights Reserved. + * See the file COPYING for license and usage terms. + * + * bpu.h - Utility routines for bpe3 + */ + +#ifndef BPU_H +#define BPU_H + +#include "port.h" // for PRINTFFY + +class AgString;// from agstring.h +class Rule; // from rule.h +class Token; // from token.h + + +void count_pe_line(const char *s, int k); +void define_macro(const char *, const char *, ...) PRINTFFY(2,3); +void define_macro_default(const char *, const char *, ...) PRINTFFY(2,3); +int find_completions(int s, const unsigned **q); +void find_key_tokens(const int *, int, int/* , int*/); +unsigned find_token_number(const char *); +unsigned char *key_string(int tn); +Rule ruleReducedBy(Token, unsigned sn); +void select_actions(int); +void select_write_fragment(const char *, const char *, const char *); +int shift_token(unsigned, unsigned); +AgString subs_template(const char *, const char *, const char); +void template_string(const char *, const char *, const char); +int wpe(const char *fs, ...) PRINTFFY(1,2); +int wps(const char *s); +int wss(void); + +void write_code_segment(const char *name); +AgString code_segment(const char *name); + +#endif /* BPU_H */