Mercurial > ~dholland > hg > ag > index.cgi
view anagram/guisupport/items.h @ 15:f5acaf0c8a29
Don't cast through "volatile int". Causes a gcc warning nowadays.
XXX: should put something else back here to frighten the optimizer
author | David A. Holland |
---|---|
date | Tue, 31 May 2022 01:00:55 -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. * * items.h */ #ifndef ITEMS_H #define ITEMS_H #include "dc.h" class state_table_dc : public dc { public: static MenuOption *auxTable[]; virtual MenuOption **getAuxWinMenu(void) { return auxTable; } state_table_dc(void); state_table_dc(state_table_dc &x) : dc(x) {} virtual void getLine(unsigned) const; virtual void synchCursor(unsigned) const; virtual dc_ref aux_trace(unsigned); virtual dc_ref expansion_rules(unsigned); virtual dc_ref keywords(unsigned); virtual dc_ref previous_states(unsigned); virtual dc_ref productions(unsigned); virtual dc_ref reduction_states(unsigned); virtual dc_ref rule_context(unsigned); virtual dc_ref set_elements(unsigned); virtual dc_ref state_expansion(unsigned); virtual dc_ref usage(unsigned); virtual int expansion_rules_ok(unsigned); virtual int keywords_ok(unsigned); virtual int previous_states_ok(unsigned); virtual int productions_ok(unsigned); virtual int reduction_states_ok(unsigned); virtual int rule_context_ok(unsigned ln) { return ln != 0; } virtual int set_elements_ok(unsigned); virtual int usage_ok(unsigned); struct item { unsigned state; unsigned rule; unsigned index; int first_flag; item(unsigned ln); unsigned token(void); }; }; class expansion_rules_dc : public dc { public: unsigned token_number; static MenuOption *auxTable[]; virtual MenuOption **getAuxWinMenu(void) { return auxTable; } expansion_rules_dc(unsigned, const AgString); expansion_rules_dc(expansion_rules_dc &x) : dc(x),token_number(x.token_number) {} virtual unsigned rule(unsigned) const; virtual unsigned token(unsigned) const; virtual void getLine(unsigned) const; virtual void synchCursor(unsigned) const; virtual dc_ref expansion_rules(unsigned); virtual dc_ref productions(unsigned); virtual dc_ref rule_context(unsigned); virtual dc_ref set_elements(unsigned); virtual dc_ref usage(unsigned); virtual int expansion_rules_ok(unsigned); virtual int productions_ok(unsigned); virtual int rule_context_ok(unsigned k) { return k != 0; } virtual int set_elements_ok(unsigned); virtual int usage_ok(unsigned); }; dc_ref build_item_list(int tn); int build_item_list_ok(int tn); dc_ref expand_specific_item(dc_ref, int, int); #endif /* ITEMS_H */