copy line and pragma directive parsers from lexer