implement SF semantic to the parser