mirror of
https://github.com/cregit/cregit.git
synced 2026-03-02 18:23:32 +01:00
432 lines
7.4 KiB
Plaintext
432 lines
7.4 KiB
Plaintext
-:- 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|<iostream>
|
|
-:- end_include
|
|
-:- begin_include
|
|
2:1 include|#
|
|
2:2 directive|include
|
|
2:10 file|<memory>
|
|
-:- end_include
|
|
-:- begin_include
|
|
3:1 include|#
|
|
3:2 directive|include
|
|
3:10 file|<functional>
|
|
-:- end_include
|
|
-:- begin_include
|
|
4:1 include|#
|
|
4:2 directive|include
|
|
4:10 file|<string>
|
|
-:- end_include
|
|
-:- begin_include
|
|
5:1 include|#
|
|
5:2 directive|include
|
|
5:10 file|<set>
|
|
-:- 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
|