identification rules library = description of objects;
description of objects = object description|description of objects,object description;
object description = heading,description of contours[,description of parameters];
heading = ‘#obj’[,space],object name,new line;
object name = name;
description of contours = component contours[,exclusions];
component contours = declaration of contours[,identification rules];
declaration of contours = ‘contours’,list of contours,new line;
exclusions = excluded contours|exclusions,excluded contours;
excluded contours = declaration of excluded contours[,identification rules];
declaration of excluded contours =‘ exclude’,list of contours,new line;
list of contours = contour declaration|list of contours,‘,’,contour declaration;
contour declaration = contour name,‘(‘,contour id,‘)’|contour name,‘,’,contour declaration;
contour name = name;
contour id = ?contour id in the shape library?|‘any’;
identification rules = identification rule|identification rules,identification rule;
identification rule = ?topological or logical condition?,new line | auxiliary definition,new line;
auxiliary definition = ’aux’,name,’=’,?function returning point or line?;
description of parameters = declaration of parameters,calculation rules;
declaration of parameters = ‘parameters’,list of parameters,new line;
list of parameters = parameter declaration|list of parameters,‘,’,parameter declaration;
parameter declaration = parameter name,‘(’,parameter type,‘)’|parameter name,‘,’,parameter declaration;
parameter name = name;
parameter type = ‘real’|‘point’|‘position’;
calculation rules = assignment|calculation rules,assignment;
assignment = ?parameter identification?,‘=’,?arithmetic expression?,new line;
name = ?string consisting of alphabetic characters and digits?;
new line = ?new line character?;
space = ?space character?;