rename Parser and SyntaxRule and implement template parameter