view anagram/agcore/bpu.h @ 14:a02e9434072e

Fix friend declaration for gcc10. XXX: did not check it against the IBM compiler, might end up needing XXX: to be conditional.
author David A. Holland
date Tue, 31 May 2022 00:59:42 -0400
parents 13d2b8934445
children
line wrap: on
line source

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