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 */