-:- begin_unit|revision:0.9.5;language:C++;cregit-version:0.0.1 -:- begin_include 1:1 include|# 1:2 directive|include 1:10 file| -:- end_include -:- begin_include 2:1 include|# 2:2 directive|include 2:10 file| -:- end_include -:- begin_include 3:1 include|# 3:2 directive|include 3:10 file| -:- end_include -:- begin_include 4:1 include|# 4:2 directive|include 4:10 file| -:- end_include -:- begin_include 5:1 include|# 5:2 directive|include 5:10 file| -:- end_include -:- begin_typedef 7:1 typedef|typedef 7:9 name|int 7:13 name|node_type 7:22 typedef|; -:- end_typedef -:- begin_struct 9:1 struct|struct 9:8 name|tree_type 9:18 block|{ 10:5 name|std 10:8 operator|:: 10:10 name|shared_ptr 10:20 argument_list|< 10:21 name|tree_type 10:30 argument_list|> 10:32 name|left 10:36 decl_stmt|; 11:5 name|std 11:8 operator|:: 11:10 name|shared_ptr 11:20 argument_list|< 11:21 name|tree_type 11:30 argument_list|> 11:32 name|right 11:37 decl_stmt|; 12:5 name|node_type 12:15 name|value 12:20 decl_stmt|; 13:5 name|tree_type 13:14 parameter_list|( 13:15 specifier|const 13:21 name|node_type 13:31 modifier|& 13:32 name|v 13:33 parameter_list|) 13:35 block|{ 14:9 name|left 14:14 operator|= 14:16 literal|nullptr 14:23 expr_stmt|; 15:9 name|right 15:15 operator|= 15:17 literal|nullptr 15:24 expr_stmt|; 16:9 name|value 16:15 operator|= 16:17 name|v 16:18 expr_stmt|; 17:5 block|} 18:1 block|} 18:2 struct|; -:- end_struct -:- begin_typedef 20:1 typedef|typedef 20:9 name|std 20:12 operator|:: 20:14 name|shared_ptr 20:24 argument_list|< 20:25 name|tree_type 20:34 argument_list|> 20:36 name|tree_ptr 20:44 typedef|; -:- end_typedef -:- begin_function 22:1 name|tree_ptr 22:10 name|insert 22:16 parameter_list|( 22:17 name|tree_ptr 22:26 name|current 22:33 parameter_list|, 22:35 name|node_type 22:45 name|value 22:50 parameter_list|) 23:1 block|{ 24:5 if|if 24:8 condition|( 24:9 name|current 24:17 operator|== 24:20 literal|nullptr 24:27 condition|) 24:29 block|{ 25:9 return|return 25:16 name|std 25:19 operator|:: 25:21 name|make_shared 25:32 argument_list|< 25:33 name|tree_type 25:42 argument_list|> 25:43 argument_list|( 25:44 name|value 25:49 argument_list|) 25:50 return|; 26:5 block|} 28:5 if|if 28:8 condition|( 28:9 name|value 28:15 operator|< 28:17 name|current 28:24 operator|-> 28:26 name|value 28:31 condition|) 28:33 block|{ 29:9 name|current 29:16 operator|-> 29:18 name|left 29:23 operator|= 29:25 name|insert 29:31 argument_list|( 29:32 name|current 29:39 operator|-> 29:41 name|left 29:45 argument_list|, 29:47 name|value 29:52 argument_list|) 29:53 expr_stmt|; 30:5 block|} 30:7 else|else 30:12 block|{ 31:9 name|current 31:16 operator|-> 31:18 name|right 31:24 operator|= 31:26 name|insert 31:32 argument_list|( 31:33 name|current 31:40 operator|-> 31:42 name|right 31:47 argument_list|, 31:49 name|value 31:54 argument_list|) 31:55 expr_stmt|; 32:5 block|} 33:5 return|return 33:12 name|current 33:19 return|; 34:1 block|} -:- end_function -:- begin_function 36:1 name|void 36:6 name|tree_in_order 36:19 parameter_list|( 36:20 name|tree_ptr 36:29 name|current 36:36 parameter_list|, 36:38 name|std 36:41 operator|:: 36:43 name|function 36:51 argument_list|< 36:52 name|void 36:57 operator|( 36:58 name|node_type 36:67 modifier|& 36:68 operator|) 36:69 argument_list|> 36:71 name|func 36:75 parameter_list|) 37:1 block|{ 38:5 if|if 38:8 condition|( 38:9 name|current 38:17 operator|!= 38:20 literal|nullptr 38:27 condition|) 38:29 block|{ 39:9 name|func 39:13 argument_list|( 39:14 name|current 39:21 operator|-> 39:23 name|value 39:28 argument_list|) 39:29 expr_stmt|; 40:9 name|tree_in_order 40:22 argument_list|( 40:23 name|current 40:30 operator|-> 40:32 name|left 40:36 argument_list|, 40:38 name|func 40:42 argument_list|) 40:43 expr_stmt|; 41:9 name|tree_in_order 41:22 argument_list|( 41:23 name|current 41:30 operator|-> 41:32 name|right 41:37 argument_list|, 41:39 name|func 41:43 argument_list|) 41:44 expr_stmt|; 42:5 block|} 43:1 block|} -:- end_function -:- begin_function 45:1 name|std 45:4 operator|:: 45:6 name|string 45:13 name|shape 45:18 parameter_list|( 45:19 name|tree_ptr 45:28 name|current 45:35 parameter_list|) 46:1 block|{ 47:5 name|std 47:8 operator|:: 47:10 name|string 47:17 name|ret 47:21 init|= 47:23 literal|"" 47:25 decl_stmt|; 48:5 if|if 48:8 condition|( 48:9 name|current 48:17 operator|!= 48:20 literal|nullptr 48:27 condition|) 48:29 block|{ 49:9 if|if 49:12 condition|( 49:13 name|current 49:20 operator|-> 49:22 name|left 49:27 operator|!= 49:30 literal|nullptr 49:37 condition|) 49:39 block|{ 50:13 name|ret 50:17 operator|+= 50:20 literal|"L" 50:23 expr_stmt|; 51:13 name|ret 51:17 operator|+= 51:20 name|shape 51:25 argument_list|( 51:26 name|current 51:33 operator|-> 51:35 name|left 51:39 argument_list|) 51:40 expr_stmt|; 52:9 block|} 53:9 name|ret 53:13 operator|+= 53:16 literal|"." 53:19 expr_stmt|; 54:9 if|if 54:12 condition|( 54:13 name|current 54:20 operator|-> 54:22 name|right 54:28 operator|!= 54:31 literal|nullptr 54:38 condition|) 54:40 block|{ 55:13 name|ret 55:17 operator|+= 55:20 literal|"R" 55:23 expr_stmt|; 56:13 name|ret 56:17 operator|+= 56:20 name|shape 56:25 argument_list|( 56:26 name|current 56:33 operator|-> 56:35 name|right 56:40 argument_list|) 56:41 expr_stmt|; 57:9 block|} 58:5 block|} 59:5 return|return 59:12 name|ret 59:15 return|; 60:1 block|} -:- end_function -:- begin_function 64:1 name|void 64:6 name|p 64:7 parameter_list|( 64:8 name|node_type 64:18 modifier|& 64:19 name|n 64:20 parameter_list|) 65:1 block|{ 66:5 name|std 66:8 operator|:: 66:10 name|cout 66:15 operator|<< 66:18 name|n 66:19 expr_stmt|; 67:1 block|} -:- end_function -:- begin_function 69:1 name|int 69:5 name|main 69:9 parameter_list|() 70:1 block|{ 73:5 name|int 73:9 name|n 73:10 decl_stmt|; 74:5 name|int 74:9 name|k 74:10 decl_stmt|; 76:5 name|std 76:8 operator|:: 76:10 name|cin 76:14 operator|>> 76:17 name|n 76:18 expr_stmt|; 77:5 name|std 77:8 operator|:: 77:10 name|cin 77:14 operator|>> 77:17 name|k 77:18 expr_stmt|; 79:5 name|int 79:9 name|c 79:11 init|= 79:13 name|n 79:14 decl_stmt|; 80:5 name|std 80:8 operator|:: 80:10 name|set 80:13 argument_list|< 80:14 name|std 80:17 operator|:: 80:19 name|string 80:25 argument_list|> 80:27 name|types 80:32 decl_stmt|; 81:5 while|while 81:11 condition|( 81:12 name|c 81:13 operator|-- 81:15 operator|> 81:17 literal|0 81:18 condition|) 81:20 block|{ 82:9 name|tree_ptr 82:18 name|t 82:20 init|= 82:22 literal|nullptr 82:29 decl_stmt|; 84:9 for|for 84:12 control|( 84:13 name|int 84:17 name|i 84:18 init|= 84:19 literal|0 84:20 init|; 84:21 name|i 84:22 operator|< 84:23 name|k 84:24 condition|; 84:25 name|i 84:26 operator|++ 84:28 control|) 84:30 block|{ 85:13 name|int 85:17 name|v 85:18 decl_stmt|; 86:13 name|std 86:16 operator|:: 86:18 name|cin 86:22 operator|>> 86:25 name|v 86:26 expr_stmt|; 87:13 name|t 87:15 operator|= 87:17 name|insert 87:23 argument_list|( 87:24 name|t 87:25 argument_list|, 87:27 name|v 87:28 argument_list|) 87:29 expr_stmt|; 88:9 block|} 89:9 name|types 89:14 operator|. 89:15 name|insert 89:21 argument_list|( 89:22 name|shape 89:27 argument_list|( 89:28 name|t 89:29 argument_list|) 89:30 argument_list|) 89:31 expr_stmt|; 90:5 block|} 93:5 name|std 93:8 operator|:: 93:10 name|cout 93:15 operator|<< 93:18 name|types 93:23 operator|. 93:24 name|size 93:28 argument_list|() 93:31 operator|<< 93:34 name|std 93:37 operator|:: 93:39 name|endl 93:43 expr_stmt|; 96:5 return|return 96:12 literal|0 96:13 return|; 97:1 block|} -:- end_function -:- end_unit