Mercurial > ~dholland > hg > ag > index.cgi
view anagram/guisupport/stexpdc.h @ 7:57b2cc9b87f7
Use memcpy instead of strncpy when we know the length anyway.
Modern gcc seems to think it knows how to detect misuse of strncpy,
but it's wrong (in fact: very, very wrong) and the path of least
resistance is to not try to fight with it.
author | David A. Holland |
---|---|
date | Mon, 30 May 2022 23:47:52 -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. * * stexpdc.h */ #ifndef STEXPDC_H #define STEXPDC_H class state_expansion_dc : public dc { public: static MenuOption *auxTable[]; virtual MenuOption **getAuxWinMenu(void) { return auxTable; } unsigned state_number; tsd *expansion; state_expansion_dc(unsigned, const AgString, const AgString); state_expansion_dc(state_expansion_dc &x) : dc(x), state_number(x.state_number), expansion(x.expansion) {} ~state_expansion_dc(void); virtual unsigned token(unsigned); virtual void getLine(unsigned) const; virtual void synchCursor(unsigned) const; virtual dc_ref aux_trace(unsigned); virtual dc_ref expansion_chain(unsigned); virtual dc_ref expansion_rules(unsigned); virtual dc_ref previous_states(unsigned); virtual dc_ref productions(unsigned ln); virtual dc_ref reduction_states(unsigned); virtual dc_ref rule_context(unsigned); virtual dc_ref set_elements(unsigned); virtual dc_ref usage(unsigned); virtual int expansion_chain_ok(unsigned); virtual int expansion_rules_ok(unsigned); virtual int previous_states_ok(unsigned); virtual int productions_ok(unsigned ln); 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); }; class expansion_chain_dc : public state_expansion_dc { public: unsigned rule_number; expansion_chain_dc(unsigned sn, unsigned rn, AgString foot); }; dc_ref expansion_chain_window(int,int,int); dc_ref state_expansion_window(int); #endif /* STEXPDC_H */