view anagram/agcore/rpk.h @ 21:1c9dac05d040

Add lint-style FALLTHROUGH annotations to fallthrough cases. (in the parse engine and thus the output code) Document this, because the old output causes warnings with gcc10.
author David A. Holland
date Mon, 13 Jun 2022 00:04:38 -0400
parents 13d2b8934445
children
line wrap: on
line source

/*
 * AnaGram, A System for Syntax Directed Programming
 * Copyright 1993-2002 Parsifal Software. All Rights Reserved.
 * See the file COPYING for license and usage terms.
 *
 * rpk.h
 */

#ifndef RPK_H
#define RPK_H

class CharSetExpression; // from csexp.h
class Procedure; // from rule.h
class RuleElement; // from rule.h
class Token; // from token.h
#include "agstack.h"


extern AgStack< AgStack<RuleElement> > ruleElementStack;

void  defineImmediateProc(Procedure p);
int   form_element_1(CharSetExpression *);
int   form1(void);
void  gen_vp_prods(int tn, int zl, int vptn);
int   id_token(int);
int   makeRule(void);
int   makeRule(Token);
int   makeRule(Token token1, Token token2);
int   makeRule(const AgIndexedContainer<RuleElement> &elementList);
void  shell_production(int,int);
int   vp_1(void);
int   vp_2(void);
int   vp_4(void);
int   vp_6(int);
int   vp_7(int);
int   vp_form3(int);
void  vp_forms(void);
void  warning_here(const char *, ...) PRINTFFY(1,2);

#endif /* RPK_H */