clings 3.0.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- clings-3.0.0/.gitignore +8 -0
- clings-3.0.0/PKG-INFO +95 -0
- clings-3.0.0/README.md +75 -0
- clings-3.0.0/clings.py +1173 -0
- clings-3.0.0/clings.toml +31 -0
- clings-3.0.0/exercises/01_simplest_c_program/01a_return_zero.c +13 -0
- clings-3.0.0/exercises/01_simplest_c_program/01b_return_expression.c +22 -0
- clings-3.0.0/exercises/01_simplest_c_program/README.md +171 -0
- clings-3.0.0/exercises/01_simplest_c_program/exercises.toml +47 -0
- clings-3.0.0/exercises/01_simplest_c_program/simple.s +22 -0
- clings-3.0.0/exercises/01_simplest_c_program/variable.c +9 -0
- clings-3.0.0/exercises/02_hello_world_printf/02a_hello_printf.c +16 -0
- clings-3.0.0/exercises/02_hello_world_printf/02b_format_print.c +27 -0
- clings-3.0.0/exercises/02_hello_world_printf/README.md +72 -0
- clings-3.0.0/exercises/02_hello_world_printf/exercises.toml +58 -0
- clings-3.0.0/exercises/03_loop_counting/03a_while_loop.c +23 -0
- clings-3.0.0/exercises/03_loop_counting/03b_for_loop.c +28 -0
- clings-3.0.0/exercises/03_loop_counting/README.md +85 -0
- clings-3.0.0/exercises/03_loop_counting/exercises.toml +76 -0
- clings-3.0.0/exercises/04_odd_or_even/README.md +41 -0
- clings-3.0.0/exercises/04_odd_or_even/exercises.toml +38 -0
- clings-3.0.0/exercises/04_odd_or_even/judge.c +30 -0
- clings-3.0.0/exercises/05_sum_1_to_100/05a_sum.c +24 -0
- clings-3.0.0/exercises/05_sum_1_to_100/05b_sum_even.c +32 -0
- clings-3.0.0/exercises/05_sum_1_to_100/README.md +63 -0
- clings-3.0.0/exercises/05_sum_1_to_100/exercises.toml +52 -0
- clings-3.0.0/exercises/06_multiplication_table/README.md +73 -0
- clings-3.0.0/exercises/06_multiplication_table/exercises.toml +36 -0
- clings-3.0.0/exercises/06_multiplication_table/table99.c +27 -0
- clings-3.0.0/exercises/07_prime_number/07a_prime.c +33 -0
- clings-3.0.0/exercises/07_prime_number/README.md +55 -0
- clings-3.0.0/exercises/07_prime_number/exercises.toml +28 -0
- clings-3.0.0/exercises/08_count_digit_nine/08_sum9.c +47 -0
- clings-3.0.0/exercises/08_count_digit_nine/README.md +71 -0
- clings-3.0.0/exercises/08_count_digit_nine/exercises.toml +29 -0
- clings-3.0.0/exercises/09_integer_to_string/09a_itoa_hex.c +37 -0
- clings-3.0.0/exercises/09_integer_to_string/README.md +60 -0
- clings-3.0.0/exercises/09_integer_to_string/exercises.toml +89 -0
- clings-3.0.0/exercises/09_integer_to_string/itoa.c +34 -0
- clings-3.0.0/exercises/10_josephus_ring/10a_init_ring.c +39 -0
- clings-3.0.0/exercises/10_josephus_ring/README.md +76 -0
- clings-3.0.0/exercises/10_josephus_ring/exercises.toml +79 -0
- clings-3.0.0/exercises/10_josephus_ring/josephus.c +56 -0
- clings-3.0.0/exercises/11_point_distance/README.md +100 -0
- clings-3.0.0/exercises/11_point_distance/exercises.toml +38 -0
- clings-3.0.0/exercises/11_point_distance/point.c +34 -0
- clings-3.0.0/exercises/12_little_endian/12_endian.c +30 -0
- clings-3.0.0/exercises/12_little_endian/README.md +55 -0
- clings-3.0.0/exercises/12_little_endian/exercises.toml +25 -0
- clings-3.0.0/exercises/13_car_restriction/13a_get_last_char.c +30 -0
- clings-3.0.0/exercises/13_car_restriction/13b_is_restricted.c +48 -0
- clings-3.0.0/exercises/13_car_restriction/README.md +91 -0
- clings-3.0.0/exercises/13_car_restriction/exercises.toml +114 -0
- clings-3.0.0/exercises/13_car_restriction/restrict.c +75 -0
- clings-3.0.0/exercises/14_maze_exit/14a_print_board.c +44 -0
- clings-3.0.0/exercises/14_maze_exit/README.md +129 -0
- clings-3.0.0/exercises/14_maze_exit/exercises.toml +77 -0
- clings-3.0.0/exercises/14_maze_exit/solution.c +97 -0
- clings-3.0.0/exercises/15_count_bits/15a_count_bits_loop.c +33 -0
- clings-3.0.0/exercises/15_count_bits/15b_count_bits_clear.c +35 -0
- clings-3.0.0/exercises/15_count_bits/README.md +228 -0
- clings-3.0.0/exercises/15_count_bits/bits.c +43 -0
- clings-3.0.0/exercises/15_count_bits/exercises.toml +120 -0
- clings-3.0.0/exercises/16_my_strcpy/16a_strcpy_delta.c +43 -0
- clings-3.0.0/exercises/16_my_strcpy/README.md +241 -0
- clings-3.0.0/exercises/16_my_strcpy/exercises.toml +70 -0
- clings-3.0.0/exercises/16_my_strcpy/mystrcpy.c +40 -0
- clings-3.0.0/exercises/17_word_count/README.md +55 -0
- clings-3.0.0/exercises/17_word_count/delspace.c +87 -0
- clings-3.0.0/exercises/17_word_count/exercises.toml +54 -0
- clings-3.0.0/exercises/17_word_count/test.txt +1 -0
- clings-3.0.0/exercises/17_word_count/wordsum.c +52 -0
- clings-3.0.0/exercises/18_my_printf/18a_itoa.c +35 -0
- clings-3.0.0/exercises/18_my_printf/18b_myprintf.c +64 -0
- clings-3.0.0/exercises/18_my_printf/README.md +139 -0
- clings-3.0.0/exercises/18_my_printf/exercises.toml +100 -0
- clings-3.0.0/exercises/18_my_printf/myprintf.c +44 -0
- clings-3.0.0/exercises/19_shell_parser/19a_shell_parse.c +38 -0
- clings-3.0.0/exercises/19_shell_parser/19b_function_ptr.c +69 -0
- clings-3.0.0/exercises/19_shell_parser/19d_shell.c +90 -0
- clings-3.0.0/exercises/19_shell_parser/README.md +99 -0
- clings-3.0.0/exercises/19_shell_parser/exercises.toml +152 -0
- clings-3.0.0/exercises/19_shell_parser/shell.c +88 -0
- clings-3.0.0/exercises/20_preprocessor/20a_delcomment.c +63 -0
- clings-3.0.0/exercises/20_preprocessor/20b_getword.c +146 -0
- clings-3.0.0/exercises/20_preprocessor/20c_expdefine.c +156 -0
- clings-3.0.0/exercises/20_preprocessor/README.md +155 -0
- clings-3.0.0/exercises/20_preprocessor/delcomment.c +135 -0
- clings-3.0.0/exercises/20_preprocessor/delspace.c +78 -0
- clings-3.0.0/exercises/20_preprocessor/exercises.toml +125 -0
- clings-3.0.0/exercises/20_preprocessor/expdefine.c +58 -0
- clings-3.0.0/exercises/20_preprocessor/expif.c +288 -0
- clings-3.0.0/exercises/20_preprocessor/log.c +210 -0
- clings-3.0.0/exercises/20_preprocessor/state.c +267 -0
- clings-3.0.0/exercises/20_preprocessor/t1.c +135 -0
- clings-3.0.0/exercises/20_preprocessor/test.c +26 -0
- clings-3.0.0/exercises/20_preprocessor/test2.c +16 -0
- clings-3.0.0/exercises/21_lexical_analyzer/README.md +75 -0
- clings-3.0.0/exercises/21_lexical_analyzer/exercises.toml +38 -0
- clings-3.0.0/exercises/21_lexical_analyzer/mylex.c +38 -0
- clings-3.0.0/exercises/21_lexical_analyzer/test.c +9 -0
- clings-3.0.0/exercises/21_lexical_analyzer/yy_accept.c +18 -0
- clings-3.0.0/exercises/21_lexical_analyzer/yy_nxt.c +2407 -0
- clings-3.0.0/exercises/22_guess_number/22a_generate.c +38 -0
- clings-3.0.0/exercises/22_guess_number/22b_check.c +38 -0
- clings-3.0.0/exercises/22_guess_number/README.md +57 -0
- clings-3.0.0/exercises/22_guess_number/exercises.toml +123 -0
- clings-3.0.0/exercises/22_guess_number/guess.c +63 -0
- clings-3.0.0/exercises/23_gomoku_game/23a_print_board.c +38 -0
- clings-3.0.0/exercises/23_gomoku_game/23c_check_win.c +48 -0
- clings-3.0.0/exercises/23_gomoku_game/README.md +93 -0
- clings-3.0.0/exercises/23_gomoku_game/exercises.toml +106 -0
- clings-3.0.0/exercises/23_gomoku_game/gomoku.c +69 -0
- clings-3.0.0/exercises/24_search_engine/24a_find_istr.c +43 -0
- clings-3.0.0/exercises/24_search_engine/24b_extract_links.c +62 -0
- clings-3.0.0/exercises/24_search_engine/README.md +48 -0
- clings-3.0.0/exercises/24_search_engine/exercises.toml +131 -0
- clings-3.0.0/exercises/24_search_engine/search.c +56 -0
- clings-3.0.0/exercises/25_file_copy_mycp/Makefile +16 -0
- clings-3.0.0/exercises/25_file_copy_mycp/README.md +119 -0
- clings-3.0.0/exercises/25_file_copy_mycp/exercises.toml +13 -0
- clings-3.0.0/exercises/25_file_copy_mycp/main.c +7 -0
- clings-3.0.0/exercises/25_file_copy_mycp/mycp.c +45 -0
- clings-3.0.0/exercises/26_elf_header_parser/Makefile +13 -0
- clings-3.0.0/exercises/26_elf_header_parser/README.md +127 -0
- clings-3.0.0/exercises/26_elf_header_parser/exercises.toml +13 -0
- clings-3.0.0/exercises/26_elf_header_parser/main.c +7 -0
- clings-3.0.0/exercises/26_elf_header_parser/readelf.c +97 -0
- clings-3.0.0/exercises/27_sed_stream_editor/Makefile +22 -0
- clings-3.0.0/exercises/27_sed_stream_editor/README.md +59 -0
- clings-3.0.0/exercises/27_sed_stream_editor/exercises.toml +13 -0
- clings-3.0.0/exercises/27_sed_stream_editor/main.c +7 -0
- clings-3.0.0/exercises/27_sed_stream_editor/sed.c +83 -0
- clings-3.0.0/exercises/28_math_calculator/Makefile +18 -0
- clings-3.0.0/exercises/28_math_calculator/README.md +65 -0
- clings-3.0.0/exercises/28_math_calculator/cmd_math.c +141 -0
- clings-3.0.0/exercises/28_math_calculator/exercises.toml +13 -0
- clings-3.0.0/exercises/28_math_calculator/main.c +7 -0
- clings-3.0.0/exercises/29_more_command/Makefile +17 -0
- clings-3.0.0/exercises/29_more_command/README.md +39 -0
- clings-3.0.0/exercises/29_more_command/cmd_more.c +167 -0
- clings-3.0.0/exercises/29_more_command/exercises.toml +13 -0
- clings-3.0.0/exercises/29_more_command/main.c +7 -0
- clings-3.0.0/exercises/29_more_command/shell.c +81 -0
- clings-3.0.0/exercises/30_sort_command/Makefile +20 -0
- clings-3.0.0/exercises/30_sort_command/README.md +72 -0
- clings-3.0.0/exercises/30_sort_command/cmd_sort.c +124 -0
- clings-3.0.0/exercises/30_sort_command/exercises.toml +13 -0
- clings-3.0.0/exercises/30_sort_command/main.c +7 -0
- clings-3.0.0/exercises/30_sort_command/test.txt +7 -0
- clings-3.0.0/exercises/31_ls_command/Makefile +24 -0
- clings-3.0.0/exercises/31_ls_command/README.md +77 -0
- clings-3.0.0/exercises/31_ls_command/cmd_ll.c +96 -0
- clings-3.0.0/exercises/31_ls_command/exercises.toml +13 -0
- clings-3.0.0/exercises/31_ls_command/main.c +7 -0
- clings-3.0.0/exercises/32_mybash_project/Makefile +14 -0
- clings-3.0.0/exercises/32_mybash_project/README.md +162 -0
- clings-3.0.0/exercises/32_mybash_project/cmd_ll.c +95 -0
- clings-3.0.0/exercises/32_mybash_project/cmd_math.c +141 -0
- clings-3.0.0/exercises/32_mybash_project/cmd_more.c +167 -0
- clings-3.0.0/exercises/32_mybash_project/cmd_sort.c +124 -0
- clings-3.0.0/exercises/32_mybash_project/exercises.toml +13 -0
- clings-3.0.0/exercises/32_mybash_project/main.c +7 -0
- clings-3.0.0/exercises/32_mybash_project/mycp.c +45 -0
- clings-3.0.0/exercises/32_mybash_project/readelf.c +97 -0
- clings-3.0.0/exercises/32_mybash_project/sed.c +83 -0
- clings-3.0.0/exercises/32_mybash_project/shell.c +89 -0
- clings-3.0.0/exercises/32_mybash_project/test.txt +7 -0
- clings-3.0.0/exercises/33_singly_linked_list/Makefile +5 -0
- clings-3.0.0/exercises/33_singly_linked_list/README.md +105 -0
- clings-3.0.0/exercises/33_singly_linked_list/array.c +141 -0
- clings-3.0.0/exercises/33_singly_linked_list/array.h +16 -0
- clings-3.0.0/exercises/33_singly_linked_list/exercises.toml +13 -0
- clings-3.0.0/exercises/33_singly_linked_list/list.c +150 -0
- clings-3.0.0/exercises/33_singly_linked_list/list.h +21 -0
- clings-3.0.0/exercises/33_singly_linked_list/main.c +7 -0
- clings-3.0.0/exercises/34_circular_list_josephus/Makefile +4 -0
- clings-3.0.0/exercises/34_circular_list_josephus/README.md +76 -0
- clings-3.0.0/exercises/34_circular_list_josephus/clist.c +125 -0
- clings-3.0.0/exercises/34_circular_list_josephus/clist.h +23 -0
- clings-3.0.0/exercises/34_circular_list_josephus/exercises.toml +13 -0
- clings-3.0.0/exercises/34_circular_list_josephus/main.c +7 -0
- clings-3.0.0/exercises/35_stack_expression_eval/Makefile +2 -0
- clings-3.0.0/exercises/35_stack_expression_eval/README.md +38 -0
- clings-3.0.0/exercises/35_stack_expression_eval/exercises.toml +13 -0
- clings-3.0.0/exercises/35_stack_expression_eval/stack.c +7 -0
- clings-3.0.0/exercises/36_queue_bfs_maze/Makefile +12 -0
- clings-3.0.0/exercises/36_queue_bfs_maze/README.md +29 -0
- clings-3.0.0/exercises/36_queue_bfs_maze/exercises.toml +13 -0
- clings-3.0.0/exercises/36_queue_bfs_maze/queue.c +7 -0
- clings-3.0.0/exercises/37_binary_tree_wordfreq/Makefile +7 -0
- clings-3.0.0/exercises/37_binary_tree_wordfreq/README.md +29 -0
- clings-3.0.0/exercises/37_binary_tree_wordfreq/exercises.toml +13 -0
- clings-3.0.0/exercises/37_binary_tree_wordfreq/myparser.c +160 -0
- clings-3.0.0/exercises/37_binary_tree_wordfreq/sum_char.c +188 -0
- clings-3.0.0/exercises/37_binary_tree_wordfreq/sum_symbol.c +327 -0
- clings-3.0.0/exercises/37_binary_tree_wordfreq/sum_word.c +7 -0
- clings-3.0.0/exercises/38_heap_sort/Makefile +12 -0
- clings-3.0.0/exercises/38_heap_sort/README.md +49 -0
- clings-3.0.0/exercises/38_heap_sort/exercises.toml +13 -0
- clings-3.0.0/exercises/38_heap_sort/heap.c +7 -0
- clings-3.0.0/exercises/39_hash_table_symbol/README.md +18 -0
- clings-3.0.0/exercises/39_hash_table_symbol/exercises.toml +13 -0
- clings-3.0.0/exercises/39_hash_table_symbol/hash.c +7 -0
- clings-3.0.0/exercises/39_hash_table_symbol/in.txt +41 -0
- clings-3.0.0/exercises/39_hash_table_symbol/out.txt +93 -0
- clings-3.0.0/exercises/40_my_dictionary/Makefile +15 -0
- clings-3.0.0/exercises/40_my_dictionary/README.md +183 -0
- clings-3.0.0/exercises/40_my_dictionary/dict.c +7 -0
- clings-3.0.0/exercises/40_my_dictionary/exercises.toml +13 -0
- clings-3.0.0/exercises/41_binary_search/Makefile +12 -0
- clings-3.0.0/exercises/41_binary_search/README.md +70 -0
- clings-3.0.0/exercises/41_binary_search/bsearch.c +7 -0
- clings-3.0.0/exercises/41_binary_search/exercises.toml +13 -0
- clings-3.0.0/exercises/42_quicksort/Makefile +12 -0
- clings-3.0.0/exercises/42_quicksort/README.md +99 -0
- clings-3.0.0/exercises/42_quicksort/exercises.toml +13 -0
- clings-3.0.0/exercises/42_quicksort/qsort.c +7 -0
- clings-3.0.0/exercises/43_backtrack_dfs_maze/README.md +13 -0
- clings-3.0.0/exercises/43_backtrack_dfs_maze/backtrack.c +238 -0
- clings-3.0.0/exercises/43_backtrack_dfs_maze/exercises.toml +13 -0
- clings-3.0.0/exercises/43_backtrack_dfs_maze/maze.c +7 -0
- clings-3.0.0/exercises/44_kmp_string_match/Makefile +12 -0
- clings-3.0.0/exercises/44_kmp_string_match/README.md +18 -0
- clings-3.0.0/exercises/44_kmp_string_match/exercises.toml +13 -0
- clings-3.0.0/exercises/44_kmp_string_match/kmp.c +7 -0
- clings-3.0.0/exercises/45_lcs_dynamic_programming/Makefile +12 -0
- clings-3.0.0/exercises/45_lcs_dynamic_programming/README.md +37 -0
- clings-3.0.0/exercises/45_lcs_dynamic_programming/dp.c +7 -0
- clings-3.0.0/exercises/45_lcs_dynamic_programming/exercises.toml +13 -0
- clings-3.0.0/exercises/46_dijkstra_shortest_path/Makefile +12 -0
- clings-3.0.0/exercises/46_dijkstra_shortest_path/README.md +26 -0
- clings-3.0.0/exercises/46_dijkstra_shortest_path/d2.c +90 -0
- clings-3.0.0/exercises/46_dijkstra_shortest_path/d3.c +95 -0
- clings-3.0.0/exercises/46_dijkstra_shortest_path/dijkstra.c +7 -0
- clings-3.0.0/exercises/46_dijkstra_shortest_path/exercises.toml +13 -0
- clings-3.0.0/exercises/47_huffman_coding/Makefile +12 -0
- clings-3.0.0/exercises/47_huffman_coding/README.md +24 -0
- clings-3.0.0/exercises/47_huffman_coding/exercises.toml +13 -0
- clings-3.0.0/exercises/47_huffman_coding/huffman.c +7 -0
- clings-3.0.0/exercises/48_gps_navigation/Makefile +12 -0
- clings-3.0.0/exercises/48_gps_navigation/README.md +17 -0
- clings-3.0.0/exercises/48_gps_navigation/exercises.toml +15 -0
- clings-3.0.0/exercises/48_gps_navigation/gps.c +7 -0
- clings-3.0.0/exercises/48_gps_navigation/map.txt +58 -0
- clings-3.0.0/exercises/49_strip_comments_fsm/Makefile +18 -0
- clings-3.0.0/exercises/49_strip_comments_fsm/README.md +60 -0
- clings-3.0.0/exercises/49_strip_comments_fsm/exercises.toml +13 -0
- clings-3.0.0/exercises/49_strip_comments_fsm/strip_comments.c +7 -0
- clings-3.0.0/exercises/50_regex_matcher/Makefile +15 -0
- clings-3.0.0/exercises/50_regex_matcher/README.md +53 -0
- clings-3.0.0/exercises/50_regex_matcher/exercises.toml +13 -0
- clings-3.0.0/exercises/50_regex_matcher/regex.c +7 -0
- clings-3.0.0/exercises/51_rle_compression/Makefile +15 -0
- clings-3.0.0/exercises/51_rle_compression/README.md +46 -0
- clings-3.0.0/exercises/51_rle_compression/exercises.toml +13 -0
- clings-3.0.0/exercises/51_rle_compression/rle.c +7 -0
- clings-3.0.0/exercises/52_lz77_compression/Makefile +15 -0
- clings-3.0.0/exercises/52_lz77_compression/README.md +46 -0
- clings-3.0.0/exercises/52_lz77_compression/exercises.toml +13 -0
- clings-3.0.0/exercises/52_lz77_compression/lz77.c +7 -0
- clings-3.0.0/exercises/53_base64_codec/Makefile +15 -0
- clings-3.0.0/exercises/53_base64_codec/README.md +42 -0
- clings-3.0.0/exercises/53_base64_codec/base64.c +7 -0
- clings-3.0.0/exercises/53_base64_codec/exercises.toml +13 -0
- clings-3.0.0/exercises/54_json_parser/Makefile +15 -0
- clings-3.0.0/exercises/54_json_parser/README.md +48 -0
- clings-3.0.0/exercises/54_json_parser/exercises.toml +13 -0
- clings-3.0.0/exercises/54_json_parser/json_parser.c +7 -0
- clings-3.0.0/exercises/55_memory_allocator/Makefile +15 -0
- clings-3.0.0/exercises/55_memory_allocator/README.md +56 -0
- clings-3.0.0/exercises/55_memory_allocator/exercises.toml +13 -0
- clings-3.0.0/exercises/55_memory_allocator/mymalloc.c +7 -0
- clings-3.0.0/exercises/56_coroutine/Makefile +15 -0
- clings-3.0.0/exercises/56_coroutine/README.md +55 -0
- clings-3.0.0/exercises/56_coroutine/coroutine.c +7 -0
- clings-3.0.0/exercises/56_coroutine/exercises.toml +13 -0
- clings-3.0.0/exercises/57_tcp_echo_server/Makefile +16 -0
- clings-3.0.0/exercises/57_tcp_echo_server/README.md +51 -0
- clings-3.0.0/exercises/57_tcp_echo_server/echo_server.c +7 -0
- clings-3.0.0/exercises/57_tcp_echo_server/exercises.toml +13 -0
- clings-3.0.0/exercises/58_http_server/Makefile +16 -0
- clings-3.0.0/exercises/58_http_server/README.md +46 -0
- clings-3.0.0/exercises/58_http_server/exercises.toml +13 -0
- clings-3.0.0/exercises/58_http_server/http_server.c +7 -0
- clings-3.0.0/exercises/58_http_server/index.html +12 -0
- clings-3.0.0/exercises/59_signal_handler/Makefile +15 -0
- clings-3.0.0/exercises/59_signal_handler/README.md +55 -0
- clings-3.0.0/exercises/59_signal_handler/exercises.toml +14 -0
- clings-3.0.0/exercises/59_signal_handler/watchdog.c +7 -0
- clings-3.0.0/exercises/60_mini_shell/Makefile +17 -0
- clings-3.0.0/exercises/60_mini_shell/README.md +52 -0
- clings-3.0.0/exercises/60_mini_shell/exercises.toml +13 -0
- clings-3.0.0/exercises/60_mini_shell/minishell2.c +7 -0
- clings-3.0.0/exercises/61_riscv_assembly/Makefile +27 -0
- clings-3.0.0/exercises/61_riscv_assembly/README.md +109 -0
- clings-3.0.0/exercises/61_riscv_assembly/exercises.toml +14 -0
- clings-3.0.0/exercises/61_riscv_assembly/fact.s +39 -0
- clings-3.0.0/exercises/61_riscv_assembly/return42.s +10 -0
- clings-3.0.0/exercises/61_riscv_assembly/sum100.s +19 -0
- clings-3.0.0/exercises/62_instruction_encoder/Makefile +15 -0
- clings-3.0.0/exercises/62_instruction_encoder/README.md +51 -0
- clings-3.0.0/exercises/62_instruction_encoder/exercises.toml +13 -0
- clings-3.0.0/exercises/62_instruction_encoder/rv_encoder.c +7 -0
- clings-3.0.0/exercises/63_disassembler/Makefile +18 -0
- clings-3.0.0/exercises/63_disassembler/README.md +37 -0
- clings-3.0.0/exercises/63_disassembler/exercises.toml +13 -0
- clings-3.0.0/exercises/63_disassembler/rv_disasm.c +7 -0
- clings-3.0.0/exercises/64_assembler/Makefile +18 -0
- clings-3.0.0/exercises/64_assembler/README.md +37 -0
- clings-3.0.0/exercises/64_assembler/exercises.toml +13 -0
- clings-3.0.0/exercises/64_assembler/rv_asm.c +7 -0
- clings-3.0.0/exercises/64_assembler/test.s +6 -0
- clings-3.0.0/exercises/65_elf_generator/Makefile +21 -0
- clings-3.0.0/exercises/65_elf_generator/README.md +36 -0
- clings-3.0.0/exercises/65_elf_generator/elf_gen.c +7 -0
- clings-3.0.0/exercises/65_elf_generator/exercises.toml +13 -0
- clings-3.0.0/exercises/66_toolchain_project/Makefile +59 -0
- clings-3.0.0/exercises/66_toolchain_project/README.md +42 -0
- clings-3.0.0/exercises/66_toolchain_project/exercises.toml +14 -0
- clings-3.0.0/exercises/67_c_tokenizer/Makefile +15 -0
- clings-3.0.0/exercises/67_c_tokenizer/README.md +43 -0
- clings-3.0.0/exercises/67_c_tokenizer/exercises.toml +13 -0
- clings-3.0.0/exercises/67_c_tokenizer/test.c +9 -0
- clings-3.0.0/exercises/67_c_tokenizer/tokenizer.c +7 -0
- clings-3.0.0/exercises/68_expression_parser/Makefile +16 -0
- clings-3.0.0/exercises/68_expression_parser/README.md +39 -0
- clings-3.0.0/exercises/68_expression_parser/exercises.toml +13 -0
- clings-3.0.0/exercises/68_expression_parser/expr_parser.c +7 -0
- clings-3.0.0/exercises/69_ast_builder/Makefile +15 -0
- clings-3.0.0/exercises/69_ast_builder/README.md +38 -0
- clings-3.0.0/exercises/69_ast_builder/ast_builder.c +7 -0
- clings-3.0.0/exercises/69_ast_builder/exercises.toml +13 -0
- clings-3.0.0/exercises/69_ast_builder/test.c +9 -0
- clings-3.0.0/exercises/70_stack_vm/Makefile +15 -0
- clings-3.0.0/exercises/70_stack_vm/README.md +41 -0
- clings-3.0.0/exercises/70_stack_vm/exercises.toml +13 -0
- clings-3.0.0/exercises/70_stack_vm/stack_vm.c +7 -0
- clings-3.0.0/exercises/71_tree_interpreter/Makefile +15 -0
- clings-3.0.0/exercises/71_tree_interpreter/README.md +41 -0
- clings-3.0.0/exercises/71_tree_interpreter/exercises.toml +13 -0
- clings-3.0.0/exercises/71_tree_interpreter/interpreter.c +7 -0
- clings-3.0.0/exercises/71_tree_interpreter/test.c +13 -0
- clings-3.0.0/exercises/72_mini_language/Makefile +21 -0
- clings-3.0.0/exercises/72_mini_language/README.md +62 -0
- clings-3.0.0/exercises/72_mini_language/exercises.toml +13 -0
- clings-3.0.0/exercises/72_mini_language/minilang.c +7 -0
- clings-3.0.0/exercises/lessons/73_return_constant/README.md +47 -0
- clings-3.0.0/exercises/lessons/73_return_constant/test_return.c +2 -0
- clings-3.0.0/exercises/lessons/74_unary_operators/README.md +35 -0
- clings-3.0.0/exercises/lessons/74_unary_operators/test_unary.c +2 -0
- clings-3.0.0/exercises/lessons/75_binary_arithmetic/README.md +38 -0
- clings-3.0.0/exercises/lessons/75_binary_arithmetic/test_arith.c +2 -0
- clings-3.0.0/exercises/lessons/76_comparison_logic/README.md +45 -0
- clings-3.0.0/exercises/lessons/76_comparison_logic/test_cmp.c +2 -0
- clings-3.0.0/exercises/lessons/77_local_variables/README.md +74 -0
- clings-3.0.0/exercises/lessons/77_local_variables/test_var.c +6 -0
- clings-3.0.0/exercises/lessons/78_assignment/README.md +56 -0
- clings-3.0.0/exercises/lessons/78_assignment/test_assign.c +7 -0
- clings-3.0.0/exercises/lessons/79_if_else/README.md +54 -0
- clings-3.0.0/exercises/lessons/79_if_else/test_if.c +9 -0
- clings-3.0.0/exercises/lessons/80_while_for/README.md +64 -0
- clings-3.0.0/exercises/lessons/80_while_for/test_for.c +8 -0
- clings-3.0.0/exercises/lessons/81_do_while_break/README.md +58 -0
- clings-3.0.0/exercises/lessons/81_do_while_break/test_dowhile.c +10 -0
- clings-3.0.0/exercises/lessons/82_function_definitions/README.md +68 -0
- clings-3.0.0/exercises/lessons/82_function_definitions/test_func.c +8 -0
- clings-3.0.0/exercises/lessons/83_function_parameters/README.md +67 -0
- clings-3.0.0/exercises/lessons/83_function_parameters/test_func.c +8 -0
- clings-3.0.0/exercises/lessons/84_recursive_programs/README.md +57 -0
- clings-3.0.0/exercises/lessons/84_recursive_programs/test_recurse.c +9 -0
- clings-3.0.0/exercises/lessons/85_global_variables/README.md +61 -0
- clings-3.0.0/exercises/lessons/85_global_variables/test_global.c +8 -0
- clings-3.0.0/exercises/lessons/86_char_strings/README.md +58 -0
- clings-3.0.0/exercises/lessons/86_char_strings/test_char.c +6 -0
- clings-3.0.0/exercises/lessons/87_arrays/README.md +58 -0
- clings-3.0.0/exercises/lessons/87_arrays/test_array.c +10 -0
- clings-3.0.0/exercises/lessons/88_pointers/README.md +57 -0
- clings-3.0.0/exercises/lessons/88_pointers/test_pointer.c +7 -0
- clings-3.0.0/exercises/lessons/89_pointer_arithmetic/README.md +56 -0
- clings-3.0.0/exercises/lessons/89_pointer_arithmetic/test_ptr_arith.c +17 -0
- clings-3.0.0/exercises/lessons/89_pointer_arithmetic/test_ptr_neg.c +18 -0
- clings-3.0.0/exercises/lessons/90_bubble_sort/README.md +57 -0
- clings-3.0.0/exercises/lessons/90_bubble_sort/test_bubble.c +24 -0
- clings-3.0.0/exercises/lessons/91_struct_support/README.md +57 -0
- clings-3.0.0/exercises/lessons/91_struct_support/test_struct.c +19 -0
- clings-3.0.0/exercises/lessons/92_preprocessor/README.md +59 -0
- clings-3.0.0/exercises/lessons/92_preprocessor/test_define.c +9 -0
- clings-3.0.0/exercises/lessons/93_stdlib_stubs/README.md +74 -0
- clings-3.0.0/exercises/lessons/94_arm_backend/README.md +67 -0
- clings-3.0.0/exercises/lessons/95_cross_compilation/README.md +67 -0
- clings-3.0.0/exercises/lessons/96_josephus_ring_final/README.md +84 -0
- clings-3.0.0/exercises/lessons/96_josephus_ring_final/test_josephus.c +35 -0
- clings-3.0.0/exercises/nccl-cc/Makefile +54 -0
- clings-3.0.0/exercises/nccl-cc/README.md +148 -0
- clings-3.0.0/exercises/nccl-cc/bare_rv.ld +33 -0
- clings-3.0.0/exercises/nccl-cc/codegen_a64.c +611 -0
- clings-3.0.0/exercises/nccl-cc/codegen_arm.c +603 -0
- clings-3.0.0/exercises/nccl-cc/codegen_rv.c +553 -0
- clings-3.0.0/exercises/nccl-cc/codegen_x86.c +616 -0
- clings-3.0.0/exercises/nccl-cc/debug.c +160 -0
- clings-3.0.0/exercises/nccl-cc/exercises.toml +359 -0
- clings-3.0.0/exercises/nccl-cc/fuzz/gen_prog.c +429 -0
- clings-3.0.0/exercises/nccl-cc/fuzz/run_fuzz.sh +111 -0
- clings-3.0.0/exercises/nccl-cc/main.c +9 -0
- clings-3.0.0/exercises/nccl-cc/nccl_cc.h +233 -0
- clings-3.0.0/exercises/nccl-cc/parse.c +1250 -0
- clings-3.0.0/exercises/nccl-cc/preprocess.c +331 -0
- clings-3.0.0/exercises/nccl-cc/runtime_a64.s +147 -0
- clings-3.0.0/exercises/nccl-cc/runtime_arm.s +138 -0
- clings-3.0.0/exercises/nccl-cc/runtime_rv.s +34 -0
- clings-3.0.0/exercises/nccl-cc/runtime_rv_bare.s +58 -0
- clings-3.0.0/exercises/nccl-cc/runtime_rv_io.s +141 -0
- clings-3.0.0/exercises/nccl-cc/runtime_x86.s +181 -0
- clings-3.0.0/exercises/nccl-cc/test/backends.sh +81 -0
- clings-3.0.0/exercises/nccl-cc/test/invalid/bad_token.c +4 -0
- clings-3.0.0/exercises/nccl-cc/test/invalid/missing_paren.c +9 -0
- clings-3.0.0/exercises/nccl-cc/test/invalid/missing_semicolon.c +5 -0
- clings-3.0.0/exercises/nccl-cc/test/invalid/unclosed_brace.c +5 -0
- clings-3.0.0/exercises/nccl-cc/test/run_tests.sh +101 -0
- clings-3.0.0/exercises/nccl-cc/test/test_arith.c +2 -0
- clings-3.0.0/exercises/nccl-cc/test/test_array.c +10 -0
- clings-3.0.0/exercises/nccl-cc/test/test_assign.c +7 -0
- clings-3.0.0/exercises/nccl-cc/test/test_bigframe.c +29 -0
- clings-3.0.0/exercises/nccl-cc/test/test_bitwise.c +43 -0
- clings-3.0.0/exercises/nccl-cc/test/test_bubble.c +24 -0
- clings-3.0.0/exercises/nccl-cc/test/test_cast.c +8 -0
- clings-3.0.0/exercises/nccl-cc/test/test_char.c +6 -0
- clings-3.0.0/exercises/nccl-cc/test/test_char_ptr.c +12 -0
- clings-3.0.0/exercises/nccl-cc/test/test_cmp.c +2 -0
- clings-3.0.0/exercises/nccl-cc/test/test_define.c +9 -0
- clings-3.0.0/exercises/nccl-cc/test/test_dowhile.c +10 -0
- clings-3.0.0/exercises/nccl-cc/test/test_enum.c +18 -0
- clings-3.0.0/exercises/nccl-cc/test/test_fib.c +9 -0
- clings-3.0.0/exercises/nccl-cc/test/test_for.c +8 -0
- clings-3.0.0/exercises/nccl-cc/test/test_func.c +8 -0
- clings-3.0.0/exercises/nccl-cc/test/test_global.c +8 -0
- clings-3.0.0/exercises/nccl-cc/test/test_if.c +9 -0
- clings-3.0.0/exercises/nccl-cc/test/test_incdec.c +18 -0
- clings-3.0.0/exercises/nccl-cc/test/test_init.c +23 -0
- clings-3.0.0/exercises/nccl-cc/test/test_josephus.c +35 -0
- clings-3.0.0/exercises/nccl-cc/test/test_loop.c +10 -0
- clings-3.0.0/exercises/nccl-cc/test/test_lvalue_once.c +25 -0
- clings-3.0.0/exercises/nccl-cc/test/test_pointer.c +7 -0
- clings-3.0.0/exercises/nccl-cc/test/test_ptr_arith.c +17 -0
- clings-3.0.0/exercises/nccl-cc/test/test_ptr_neg.c +18 -0
- clings-3.0.0/exercises/nccl-cc/test/test_ptrptr.c +10 -0
- clings-3.0.0/exercises/nccl-cc/test/test_recurse.c +9 -0
- clings-3.0.0/exercises/nccl-cc/test/test_return.c +2 -0
- clings-3.0.0/exercises/nccl-cc/test/test_sizeof.c +15 -0
- clings-3.0.0/exercises/nccl-cc/test/test_string.c +10 -0
- clings-3.0.0/exercises/nccl-cc/test/test_struct.c +19 -0
- clings-3.0.0/exercises/nccl-cc/test/test_switch.c +26 -0
- clings-3.0.0/exercises/nccl-cc/test/test_ternary.c +10 -0
- clings-3.0.0/exercises/nccl-cc/test/test_unary.c +2 -0
- clings-3.0.0/exercises/nccl-cc/test/test_var.c +6 -0
- clings-3.0.0/exercises/nccl-cc/tokenize.c +279 -0
- clings-3.0.0/exercises/nccl-cc/type.c +295 -0
- clings-3.0.0/pyproject.toml +38 -0
clings-3.0.0/.gitignore
ADDED
clings-3.0.0/PKG-INFO
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: clings
|
|
3
|
+
Version: 3.0.0
|
|
4
|
+
Summary: Rustlings-style C exercises CLI for OpenCamp C 2026 Summer
|
|
5
|
+
Project-URL: Homepage, https://cnb.cool/q.qq/opencamp-c-2026-summer/clings.cli
|
|
6
|
+
Project-URL: Repository, https://cnb.cool/q.qq/opencamp-c-2026-summer/clings.cli
|
|
7
|
+
Author: OpenCamp C Team
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
Keywords: c,exercises,learning,rustlings
|
|
10
|
+
Classifier: Development Status :: 4 - Beta
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: Intended Audience :: Education
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
17
|
+
Classifier: Topic :: Education
|
|
18
|
+
Requires-Python: >=3.11
|
|
19
|
+
Description-Content-Type: text/markdown
|
|
20
|
+
|
|
21
|
+
# Clings — C 语言练习系统 CLI
|
|
22
|
+
|
|
23
|
+
> **C 语言版 [Rustlings](https://github.com/rust-lang/rustlings)**:通过修复编译错误、补全代码来学习 C 语言。
|
|
24
|
+
> 配套 [OpenCamp C 2026 Summer](https://cnb.cool/q.qq/opencamp-c-2026-summer) 课程 Unit 1–4,共 **121 道练习**。
|
|
25
|
+
|
|
26
|
+
## 分支说明
|
|
27
|
+
|
|
28
|
+
| 分支 | 用途 |
|
|
29
|
+
| ---------------------- | ---------------------------------------------------- |
|
|
30
|
+
| **cli** (本分支, 默认) | CLI 工具源码 + 练习数据,CI 自动发布 pip 包 |
|
|
31
|
+
| main | 练习仓库 (学生 clone 用,已废弃,改用 `clings init`) |
|
|
32
|
+
|
|
33
|
+
## 快速开始
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
# 1. 安装
|
|
37
|
+
pip install clings --index-url https://pypi.cnb.cool/q.qq/opencamp-c-2026-summer/clings-cli/-/packages/simple
|
|
38
|
+
|
|
39
|
+
# 2. 初始化练习 (在任意空目录)
|
|
40
|
+
mkdir my-c-exercises && cd my-c-exercises
|
|
41
|
+
clings init unit1 # 释放 Unit 1 (24课49题)
|
|
42
|
+
|
|
43
|
+
# 3. 开始做题!
|
|
44
|
+
clings # 进入交互式 watch 模式
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 命令参考
|
|
48
|
+
|
|
49
|
+
```sh
|
|
50
|
+
clings # 直接进入 watch 模式 (默认)
|
|
51
|
+
clings init [unit1|...|all] # 初始化练习 (从包内释放到当前目录)
|
|
52
|
+
clings watch [selector] # 交互式 watch (保存即验证)
|
|
53
|
+
clings run [exercise] # 运行练习 (省略=下一道, 'random'=随机)
|
|
54
|
+
clings hint [exercise] # 查看提示 (省略=下一道)
|
|
55
|
+
clings list [selector] # 列出练习 + ✔/• 进度状态
|
|
56
|
+
clings check [selector] # 批量验证
|
|
57
|
+
clings reset <exercise> # 重置练习文件
|
|
58
|
+
clings reset progress # 清除全部进度
|
|
59
|
+
clings doctor # 检查环境
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## 开发
|
|
63
|
+
|
|
64
|
+
```sh
|
|
65
|
+
git clone https://cnb.cool/q.qq/opencamp-c-2026-summer/clings.git
|
|
66
|
+
cd clings/ # 默认在 cli 分支
|
|
67
|
+
pip install -e .
|
|
68
|
+
clings check unit1 --solutions # 验证 49/49
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## CI/CD
|
|
72
|
+
|
|
73
|
+
push 到 `cli` 分支自动触发:
|
|
74
|
+
|
|
75
|
+
1. **Install & Test**: pip install → clings init all → check unit1 --solutions
|
|
76
|
+
2. **Build & Publish**: python -m build → twine upload 到 CNB PyPI 制品库
|
|
77
|
+
|
|
78
|
+
## 架构
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
clings/ (cli 分支)
|
|
82
|
+
├── clings.py # CLI 核心 (单文件, 零依赖, Python 3.11+)
|
|
83
|
+
├── pyproject.toml # pip 打包 (exercises/ 嵌入 wheel)
|
|
84
|
+
├── clings.toml # units 配置
|
|
85
|
+
├── .cnb.yml # CI: cli 分支 push → test → publish
|
|
86
|
+
├── Dockerfile.ci # Ubuntu 24.04 CI 环境
|
|
87
|
+
├── exercises/ # 121 道练习 (嵌入 pip 包, clings init 释放)
|
|
88
|
+
│ ├── 01_simplest_c_program/
|
|
89
|
+
│ │ ├── exercises.toml # 练习元数据 + 测试用例
|
|
90
|
+
│ │ ├── *.c # 学生源码模板
|
|
91
|
+
│ │ └── README.md # 课程参考
|
|
92
|
+
│ └── ...
|
|
93
|
+
├── solutions/ # Unit 1 参考答案 (CI 测试用, 不打包)
|
|
94
|
+
└── tools/ # 维护脚本
|
|
95
|
+
```
|
clings-3.0.0/README.md
ADDED
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Clings — C 语言练习系统 CLI
|
|
2
|
+
|
|
3
|
+
> **C 语言版 [Rustlings](https://github.com/rust-lang/rustlings)**:通过修复编译错误、补全代码来学习 C 语言。
|
|
4
|
+
> 配套 [OpenCamp C 2026 Summer](https://cnb.cool/q.qq/opencamp-c-2026-summer) 课程 Unit 1–4,共 **121 道练习**。
|
|
5
|
+
|
|
6
|
+
## 分支说明
|
|
7
|
+
|
|
8
|
+
| 分支 | 用途 |
|
|
9
|
+
| ---------------------- | ---------------------------------------------------- |
|
|
10
|
+
| **cli** (本分支, 默认) | CLI 工具源码 + 练习数据,CI 自动发布 pip 包 |
|
|
11
|
+
| main | 练习仓库 (学生 clone 用,已废弃,改用 `clings init`) |
|
|
12
|
+
|
|
13
|
+
## 快速开始
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
# 1. 安装
|
|
17
|
+
pip install clings --index-url https://pypi.cnb.cool/q.qq/opencamp-c-2026-summer/clings-cli/-/packages/simple
|
|
18
|
+
|
|
19
|
+
# 2. 初始化练习 (在任意空目录)
|
|
20
|
+
mkdir my-c-exercises && cd my-c-exercises
|
|
21
|
+
clings init unit1 # 释放 Unit 1 (24课49题)
|
|
22
|
+
|
|
23
|
+
# 3. 开始做题!
|
|
24
|
+
clings # 进入交互式 watch 模式
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## 命令参考
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
clings # 直接进入 watch 模式 (默认)
|
|
31
|
+
clings init [unit1|...|all] # 初始化练习 (从包内释放到当前目录)
|
|
32
|
+
clings watch [selector] # 交互式 watch (保存即验证)
|
|
33
|
+
clings run [exercise] # 运行练习 (省略=下一道, 'random'=随机)
|
|
34
|
+
clings hint [exercise] # 查看提示 (省略=下一道)
|
|
35
|
+
clings list [selector] # 列出练习 + ✔/• 进度状态
|
|
36
|
+
clings check [selector] # 批量验证
|
|
37
|
+
clings reset <exercise> # 重置练习文件
|
|
38
|
+
clings reset progress # 清除全部进度
|
|
39
|
+
clings doctor # 检查环境
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## 开发
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
git clone https://cnb.cool/q.qq/opencamp-c-2026-summer/clings.git
|
|
46
|
+
cd clings/ # 默认在 cli 分支
|
|
47
|
+
pip install -e .
|
|
48
|
+
clings check unit1 --solutions # 验证 49/49
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## CI/CD
|
|
52
|
+
|
|
53
|
+
push 到 `cli` 分支自动触发:
|
|
54
|
+
|
|
55
|
+
1. **Install & Test**: pip install → clings init all → check unit1 --solutions
|
|
56
|
+
2. **Build & Publish**: python -m build → twine upload 到 CNB PyPI 制品库
|
|
57
|
+
|
|
58
|
+
## 架构
|
|
59
|
+
|
|
60
|
+
```
|
|
61
|
+
clings/ (cli 分支)
|
|
62
|
+
├── clings.py # CLI 核心 (单文件, 零依赖, Python 3.11+)
|
|
63
|
+
├── pyproject.toml # pip 打包 (exercises/ 嵌入 wheel)
|
|
64
|
+
├── clings.toml # units 配置
|
|
65
|
+
├── .cnb.yml # CI: cli 分支 push → test → publish
|
|
66
|
+
├── Dockerfile.ci # Ubuntu 24.04 CI 环境
|
|
67
|
+
├── exercises/ # 121 道练习 (嵌入 pip 包, clings init 释放)
|
|
68
|
+
│ ├── 01_simplest_c_program/
|
|
69
|
+
│ │ ├── exercises.toml # 练习元数据 + 测试用例
|
|
70
|
+
│ │ ├── *.c # 学生源码模板
|
|
71
|
+
│ │ └── README.md # 课程参考
|
|
72
|
+
│ └── ...
|
|
73
|
+
├── solutions/ # Unit 1 参考答案 (CI 测试用, 不打包)
|
|
74
|
+
└── tools/ # 维护脚本
|
|
75
|
+
```
|