Method to find a violation of a coding rule in program
View Patent ↗An apparatus for determining whether or not a program violates a convention, including an input unit for receiving an input of a target program to be an object of a determination on whether to violate the convention; a violation storing unit for beforehand storing any one of an abstract syntax tree and a pattern which indicate a structure of a program violating the convention; a converter for converting the abstract syntax tree of the target program to a conversion tree with a predetermined conversion rule; and a determination unit for determining that the target program violates the convention on condition that at least a part of the conversion tree agrees with an abstract syntax tree violating the convention.
1. A method for determining a convention violation of a program on a computer comprising a violation storing unit for beforehand storing violation information indicating a structure of the program violating a convention for each of a plurality of conventions; and a conversion rule storing unit for storing a predetermined plurality of conversion rules, comprising steps of:
receiving an input of the program potentially violating the convention;
selecting one or more conversion rules;
sequentially applying the one or more of conversion rules into an abstract syntax tree of the program;
converting the abstract syntax tree into a plurality of conversion trees;
storing a pre-conversion sub-tree of the abstract syntax tree based on the abstract syntax tree prior to conversion into the plurality of conversion trees;
storing a post-conversion sub-tree of the abstract syntax tree based on the converted abstract syntax tree;
associating the pre-conversion sub-tree of the abstract syntax tree with the post-conversion sub-tree of the abstract syntax tree;
determining that the program violates the convention on condition that at least part of a structure is common between the pre-conversion and post-conversion sub-trees, and that the common part of the structure satisfies any of the violation information stored in the violation storing unit; and
informing a user of the program that the program violates the convention.