def test_parse_redir_with_dot(self): parser = Parser() redir_cmd_node = { 'type': NodeType.EXCMD.value, 'ea': { 'argpos': { 'col': 7, 'i': 6, 'lnum': 1 }, }, 'str': 'redir => s:dict.redir', } ast = parser.parse_redir(redir_cmd_node) expected_pos = { 'col': 16, 'i': 15, 'lnum': 1, 'offset': 11, } expected_node_type = NodeType.DOT self.assertEqual(expected_node_type, NodeType(ast['type'])) self.assertEqual(expected_pos, ast['pos'])
def enter_handler(node): node_type = NodeType(node['type']) if node_type is not NodeType.EXCMD: return is_redir_command = node['ea']['cmd'].get('name') == 'redir' if not is_redir_command: return redir_cmd_str = node['str'] is_redir_assignment = '=>' in redir_cmd_str if not is_redir_assignment: return parser = Parser() redir_content_node = parser.parse_redir(node) node[REDIR_CONTENT] = redir_content_node
def test_parse_redir_with_identifier(self): parser = Parser() redir_cmd_node = { 'type': NodeType.EXCMD.value, 'ea': { 'argpos': { 'col': 6, 'i': 5, 'lnum': 1 }, }, 'str': 'redir=>redir', } ast = parser.parse_redir(redir_cmd_node) expected_pos = {'col': 8, 'i': 7, 'lnum': 1, 'offset': 5} expected_node_type = NodeType.IDENTIFIER self.assertEqual(expected_node_type, NodeType(ast['type'])) self.assertEqual(expected_pos, ast['pos'])
def test_parse_redir_with_dot(self): parser = Parser() redir_cmd_node = { 'type': NodeType.EXCMD.value, 'ea': { 'argpos': {'col': 7, 'i': 6, 'lnum': 1}, }, 'str': 'redir => s:dict.redir', } ast = parser.parse_redir(redir_cmd_node) expected_pos = { 'col': 16, 'i': 15, 'lnum': 1, } expected_node_type = NodeType.DOT self.assertEqual(expected_node_type, NodeType(ast['type'])) self.assertEqual(expected_pos, ast['pos'])
def test_parse_redir_with_identifier(self): parser = Parser() redir_cmd_node = { 'type': NodeType.EXCMD.value, 'ea': { 'argpos': {'col': 6, 'i': 5, 'lnum': 1}, }, 'str': 'redir=>redir', } ast = parser.parse_redir(redir_cmd_node) expected_pos = { 'col': 8, 'i': 7, 'lnum': 1, } expected_node_type = NodeType.IDENTIFIER self.assertEqual(expected_node_type, NodeType(ast['type'])) self.assertEqual(expected_pos, ast['pos'])