Mercurial > ~dholland > hg > ag > index.cgi
view anagram/guisupport/auxmenus.cpp @ 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-1999 Parsifal Software. All Rights Reserved. * See the file COPYING for license and usage terms. * * auxmenus.cpp - Auxiliary Menu control */ #include "anom.h" #include "charsdc.h" #include "conflictdc.h" #include "conflicttrc.h" #include "keytabdc.h" #include "items.h" #include "ruletabdc.h" #include "stexpdc.h" #include "symtabdc.h" #include "tokentabdc.h" #include "ws.h" /* Auxiliary Windows Auxiliary Trace (sn) Conflict Trace Expansion Chain (sn,fn,fx) Expansion Rules (tn) Keyword Anomaly Trace Keywords (sn) Partition Sets (pn) Previous States (sn) Problem States (sn,fn,fx,tn) Productions (tn) Reduction States (sn,fn,fx) Reduction Trace Rule Context (fn) Rule Derivation Rule Stack Set Elements (tn) State Definition (sn) State Expansion (sn) Token Derivation Token Usage (tn) */ dc::AnomalyTraceOption dc::anomalyTraceOptionInstance; dc::AuxiliaryTraceOption dc::auxiliaryTraceOptionInstance; dc::ConflictTraceOption dc::conflictTraceOptionInstance; dc::ExpansionChainOption dc::expansionChainOptionInstance; dc::ExpansionRulesOption dc::expansionRulesOptionInstance; dc::KeywordsOption dc::keywordsOptionInstance; dc::PartitionSetsOption dc::partitionSetsOptionInstance; dc::PreviousStatesOption dc::previousStatesOptionInstance; dc::ProblemStatesOption dc::problemStatesOptionInstance; dc::ProductionsOption dc::productionsOptionInstance; dc::ReductionStatesOption dc::reductionStatesOptionInstance; dc::ReductionTraceOption dc::reductionTraceOptionInstance; dc::RuleContextOption dc::ruleContextOptionInstance; dc::RuleDerivationOption dc::ruleDerivationOptionInstance; //dc::RuleStackOption dc::ruleStackOptionInstance; dc::SetElementsOption dc::setElementsOptionInstance; dc::StateDefinitionOption dc::stateDefinitionOptionInstance; dc::StateExpansionOption dc::stateExpansionOptionInstance; dc::TokenDerivationOption dc::tokenDerivationOptionInstance; dc::TokenUsageOption dc::tokenUsageOptionInstance; dc::MenuOption *conflict_table_dc::auxTable[] = { &dc::conflictTraceOptionInstance, &dc::expansionChainOptionInstance, &dc::problemStatesOptionInstance, &dc::reductionStatesOptionInstance, &dc::reductionTraceOptionInstance, &dc::ruleContextOptionInstance, &dc::ruleDerivationOptionInstance, &dc::stateDefinitionOptionInstance, &dc::stateExpansionOptionInstance, &dc::tokenDerivationOptionInstance, &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *rule_table_dc::auxTable[] = { &dc::expansionRulesOptionInstance, &dc::productionsOptionInstance, &dc::ruleContextOptionInstance, &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *anomaly_table_dc::auxTable[] = { &dc::anomalyTraceOptionInstance, &dc::reductionStatesOptionInstance, &dc::reductionTraceOptionInstance, &dc::ruleDerivationOptionInstance, &dc::stateDefinitionOptionInstance, NULL }; dc::MenuOption *char_map_dc::auxTable[] = { &dc::setElementsOptionInstance, &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *char_set_dc::auxTable[] = { &dc::partitionSetsOptionInstance, &dc::setElementsOptionInstance, &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *derivation_dc::auxTable[] = { &dc::expansionRulesOptionInstance, &dc::productionsOptionInstance, &dc::ruleContextOptionInstance, &dc::setElementsOptionInstance, &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *expansion_rules_dc::auxTable[] = { &dc::expansionRulesOptionInstance, &dc::productionsOptionInstance, &dc::ruleContextOptionInstance, &dc::setElementsOptionInstance, &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *keywords_dc::auxTable[] = { &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *keyword_table_dc::auxTable[] = { &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *partition_set_dc::auxTable[] = { &dc::setElementsOptionInstance, &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *partition_table_dc::auxTable[] = { &dc::setElementsOptionInstance, &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *rule_list_dc::auxTable[] = { &dc::expansionRulesOptionInstance, &dc::productionsOptionInstance, &dc::ruleContextOptionInstance, &dc::setElementsOptionInstance, &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *rule_stack_dc::auxTable[] = { &dc::expansionChainOptionInstance, &dc::expansionRulesOptionInstance, &dc::keywordsOptionInstance, &dc::productionsOptionInstance, //&dc::reductionStatesOptionInstance, &dc::ruleContextOptionInstance, &dc::setElementsOptionInstance, &dc::stateDefinitionOptionInstance, &dc::stateExpansionOptionInstance, &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *state_expansion_dc::auxTable[] = { &dc::auxiliaryTraceOptionInstance, &dc::expansionChainOptionInstance, &dc::expansionRulesOptionInstance, &dc::previousStatesOptionInstance, &dc::productionsOptionInstance, &dc::reductionStatesOptionInstance, &dc::ruleContextOptionInstance, &dc::setElementsOptionInstance, &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *state_list_dc::auxTable[] = { &dc::auxiliaryTraceOptionInstance, &dc::expansionRulesOptionInstance, &dc::keywordsOptionInstance, &dc::previousStatesOptionInstance, &dc::productionsOptionInstance, &dc::reductionStatesOptionInstance, &dc::ruleContextOptionInstance, &dc::setElementsOptionInstance, &dc::stateExpansionOptionInstance, &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *state_table_dc::auxTable[] = { &dc::auxiliaryTraceOptionInstance, &dc::expansionRulesOptionInstance, &dc::keywordsOptionInstance, &dc::previousStatesOptionInstance, &dc::productionsOptionInstance, &dc::reductionStatesOptionInstance, &dc::ruleContextOptionInstance, &dc::setElementsOptionInstance, &dc::stateExpansionOptionInstance, &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *symbol_table_dc::auxTable[] = { &dc::expansionRulesOptionInstance, &dc::productionsOptionInstance, &dc::setElementsOptionInstance, &dc::tokenUsageOptionInstance, NULL }; dc::MenuOption *token_table_dc::auxTable[] = { &dc::expansionRulesOptionInstance, &dc::productionsOptionInstance, &dc::setElementsOptionInstance, &dc::tokenUsageOptionInstance, NULL }; /* End AUXMENUS.C */