I construct a declaration file by myself. The V2 format is used.
****************************************************
decl-version 2.0
input-language verilog
var-comparability implicit
ppt uart(int,int,int,int,int,int,int,int,int):::ENTER
ppt-type enter
parent parent uart:::OBJECT 1
variable sys_clk
var-kind variable
dec-type int
rep-type int
flags is_param
comparability 1
parent parent uart:::OBJECT 1
......
****************************************************
error:
Daikon version 5.6.6, released July 2, 2018; http://plse.cs.washington.edu/daikon.
[1:36:52 PM]: Exception in thread "main" java.lang.NumberFormatException: For input string: "uart:::OBJECT"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at daikon.FileIO$VarDefinition.parse_parent(FileIO.java:2773)
at daikon.FileIO.read_ppt_decl(FileIO.java:366)
at daikon.FileIO.read_data_trace_record(FileIO.java:1535)
at daikon.FileIO.read_data_trace_file(FileIO.java:1408)
at daikon.FileIO.read_declaration_file(FileIO.java:287)
at daikon.FileIO.read_declaration_files(FileIO.java:275)
at daikon.Daikon.load_decls_files(Daikon.java:1781)
at daikon.Daikon.mainHelper(Daikon.java:546)
at daikon.Daikon.main(Daikon.java:449)
****************************************************
It looks like daikon can not parse "1" from "parent parent uart:::OBJECT 1"
****************************************************
The function "VarDefinition.parse_parent" in FileIO.java:
/** Parse a parent ppt record */
public void parse_parent(Scanner scanner, List ppt_parents) {
String parent_ppt = need(scanner, "parent ppt");
int parent_relation_id = Integer.parseInt(need(scanner, "parent id"));
String parent_variable = null;
......
need_eol(scanner);
}
****************************************************
My question is : How to parse "parent parent uart:::OBJECT 1" correctly or how to modify "parent parent uart:::OBJECT 1" to parse it correctly?