Update constructors
Some functions, used in ast_parser, were moved to ast_rule (to namespace converter) to resolve cyclic definition conflict. Several new constructors were added, which made it possible to reduce the code for initializing the ast rules.