- Removed some dead code by using scantags.py
This commit is contained in:
parent
1eb1e7849e
commit
256ec24d87
@ -6,7 +6,7 @@
|
||||
|
||||
//! Types of exit codes
|
||||
enum exittypes
|
||||
{ EXIT_NOATTACK = 0, EXIT_ERROR = 1, EXIT_NOCLAIM = 2, EXIT_ATTACK = 3 };
|
||||
{ EXIT_NOATTACK = 0, EXIT_ERROR = 1, EXIT_ATTACK = 3 };
|
||||
|
||||
void vprintfstderr (char *fmt, va_list args);
|
||||
void printfstderr (char *fmt, ...);
|
||||
|
@ -63,20 +63,27 @@ def gettags():
|
||||
f.close()
|
||||
return tags
|
||||
|
||||
def tagoccurs(tag):
|
||||
def tagoccurs(tag,filter=[]):
|
||||
"""
|
||||
Check tag occurrences in .c and .h files and show interesting ones.
|
||||
"""
|
||||
|
||||
cmd = "grep \"\\<%s\\>\" *.[ch]" % tag
|
||||
cmd = "grep \"\\<%s\\>\" *.[chly]" % tag
|
||||
(reslist,count) = outToRes(commands.getoutput(cmd),[tag.filename])
|
||||
if (len(reslist) == 0) and (count < 2):
|
||||
print "\"%s\" seems to occur only %i times in %s" % (tag,count,tag.filename)
|
||||
if tag.filename not in filter:
|
||||
print "Possibly used only %i times:\t%s\t%s" % (count,tag.filename,tag)
|
||||
|
||||
|
||||
def main():
|
||||
# Generate tags
|
||||
cmd = "ctags *.c *.h *.l *.y"
|
||||
commands.getoutput(cmd)
|
||||
|
||||
# Analyze results
|
||||
filter = ["scanner.c","parser.c"]
|
||||
tags = gettags()
|
||||
for t in tags:
|
||||
tagoccurs(t)
|
||||
tagoccurs(t,filter)
|
||||
|
||||
main()
|
||||
|
83
src/system.c
83
src/system.c
@ -357,89 +357,6 @@ agentOfRun (const System sys, const int run)
|
||||
return agentOfRunRole (sys, run, sys->runs[run].role->nameterm);
|
||||
}
|
||||
|
||||
/**
|
||||
* A new run is created; now we want to know if it depends on any previous run.
|
||||
* This occurs when there is a smaller runid with an identical protocol role, with the
|
||||
* same agent pattern. However, there must be at least a variable in the pattern or no
|
||||
* symmetry gains are to be made.
|
||||
*
|
||||
* Return -1 if there is no such symmetry.
|
||||
*/
|
||||
int
|
||||
staticRunSymmetry (const System sys, const int rid)
|
||||
{
|
||||
int ridSymm; // previous symmetrical run
|
||||
Termlist agents; // list of agents for rid
|
||||
Run runs; // shortcut usage
|
||||
|
||||
ridSymm = -1;
|
||||
runs = sys->runs;
|
||||
agents = runs[rid].rho;
|
||||
while (agents != NULL)
|
||||
{
|
||||
if (isTermVariable (agents->term))
|
||||
ridSymm = rid - 1;
|
||||
agents = agents->next;
|
||||
}
|
||||
/* there is no variable in this roledef, abort */
|
||||
if (ridSymm == -1)
|
||||
return -1;
|
||||
|
||||
agents = runs[rid].rho;
|
||||
while (ridSymm >= 0)
|
||||
{
|
||||
/* compare protocol name, role name */
|
||||
if (runs[ridSymm].protocol == runs[rid].protocol &&
|
||||
runs[ridSymm].role == runs[rid].role)
|
||||
{
|
||||
/* same stuff */
|
||||
int isEqual;
|
||||
Termlist al, alSymm; // agent lists
|
||||
|
||||
isEqual = 1;
|
||||
al = agents;
|
||||
alSymm = runs[ridSymm].rho;
|
||||
while (isEqual && al != NULL)
|
||||
{
|
||||
/* determine equality */
|
||||
if (isTermVariable (al->term))
|
||||
{
|
||||
/* case 1: variable, should match type */
|
||||
if (isTermVariable (alSymm->term))
|
||||
{
|
||||
if (!isTermlistEqual
|
||||
(al->term->stype, alSymm->term->stype))
|
||||
isEqual = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
isEqual = 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/* case 2: constant, should match */
|
||||
if (!isTermEqual (al->term, alSymm->term))
|
||||
isEqual = 0;
|
||||
}
|
||||
alSymm = alSymm->next;
|
||||
al = al->next;
|
||||
}
|
||||
if (al == NULL && isEqual)
|
||||
{
|
||||
/* this candidate is allright */
|
||||
#ifdef DEBUG
|
||||
warning ("Symmetry detection. #%i can depend on #%i.", rid,
|
||||
ridSymm);
|
||||
#endif
|
||||
return ridSymm;
|
||||
}
|
||||
}
|
||||
ridSymm--;
|
||||
}
|
||||
return -1; // signal that no symmetrical run was found
|
||||
}
|
||||
|
||||
//! Determine first read with variables besides agents
|
||||
/**
|
||||
*@todo For now, we assume it is simply the first read after the choose, if there is one.
|
||||
|
@ -15,9 +15,6 @@
|
||||
enum outputs
|
||||
{ EMPTY, ATTACK, STATESPACE, SCENARIOS, SUMMARY, PROOF };
|
||||
|
||||
enum engines
|
||||
{ POR_ENGINE, ARACHNE_ENGINE };
|
||||
|
||||
//! Protocol definition.
|
||||
struct protocol
|
||||
{
|
||||
|
@ -32,10 +32,6 @@ extern int inTermlist (); // suppresses a warning, but at what cost?
|
||||
|
||||
void indent (void);
|
||||
|
||||
/* useful macros */
|
||||
|
||||
//! Undefined run identifier in a term
|
||||
#define RID_UNDEF MIN_INT
|
||||
/* main code */
|
||||
|
||||
/* Two types of terms: general, and normalized. Normalized rewrites all
|
||||
|
@ -38,9 +38,7 @@
|
||||
#define CALLOC(k,n) (calloc((unsigned)(k),(unsigned)(n)))
|
||||
#define FREE(x) (free((char*)(x)))
|
||||
#define MALLOC(n) (malloc((unsigned)(n)))
|
||||
#define NEW(t) ((t*)allocate(sizeof(t)))
|
||||
#define NEW2(n,t) ((t*)allocate((unsigned)((n)*sizeof(t))))
|
||||
#define REALLOC(p,n) (realloc((char*)(p),(unsigned)(n)))
|
||||
//#define REALLOC(p,n) (realloc((char*)(p),(unsigned)(n)))
|
||||
|
||||
/* actual functions */
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user