Hello,

I want to make some modifications to the Address-typed variables in 
MOESI_CMP_token_dir.sm, so I added a member function to 
'Class Address' in Address.hh/cc files, noted as 'int testFunc()'.

However, when the SLICC anaylize the .sm file, it threw an 
error that Address doesn't have a method called testFunc. 

Then I tried to add the structure for Address into 
MOESI_CMP_token_dir.sm in two methods, but 
neither works, as listed below:

I. According to the description in slicc/doc/SLICC_V02.txt 
structure(Address, "Address", desc="xxx"){
    int testFunc();
}
Error:
Exception: MOESI_CMP_token-dir.sm:173: Error: Invalid 
method call: Type 'DirectoryMemory' does not have a method 
lookup, 'lookup_Directory_Address' nor '':

It seems that the Address is overrided in DirectoryMemory 
as Directory_Address, so I tried the way similar to 'structure 
TBETable'

II. Add structure Address as 'external' like TBETable
structure(Address, external="yes"){
    int testFunc();
}
Error:
KeyError: 'interface':
# part of error info.:
File "/home/hanxing/Projects/grave/gem5-stable/build/ALPHA_SE/
mem/protocol/SConscript", line 70:
    slicc.process()
  File "gem5-stable/src/mem/slicc/parser.py", line 65:
    self.decl_list.generate()
  File "gem5-stable/src/mem/slicc/ast/DeclListAST.py", line 52:
    decl.generate()
  File "gem5-stable/src/mem/slicc/ast/MachineAST.py", line 68:
    self.decls.generate()
  File "gem5-stable/src/mem/slicc/ast/DeclListAST.py", line 52:
    decl.generate()
  File "gem5-stable/src/mem/slicc/ast/FuncDeclAST.py", line 69:
    rtype = self.statements.generate(body, return_type)
  File "gem5-stable/src/mem/slicc/ast/StatementListAST.py", line 42:
    statement.generate(code, return_type)
  File "gem5-stable/src/mem/slicc/ast/ReturnStatementAST.py", line 
40:
    actual_type, ecode = self.expr_ast.inline(True)
  File "gem5-stable/src/mem/slicc/ast/ExprAST.py", line 39:
    return_type = self.generate(code)
  File "gem5-stable/src/mem/slicc/ast/StaticCastAST.py", line 41:
    actual_type, ecode = self.expr_ast.inline(True)
  File "gem5-stable/src/mem/slicc/ast/ExprAST.py", line 39:
    return_type = self.generate(code)
  File "gem5-stable/src/mem/slicc/ast/MethodCallExprAST.py", line 
70:
    str(actual_type["interface"]) != str(expected_type):
  File "gem5-stable/src/mem/slicc/util.py", line 40:
    return self.pairs[item]

Could anyone help me on solving this problem? Is there 
anything i missed while modifying the code?

Thanks a lot!

_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users

Reply via email to