Skip to content

Commit 8a2cea2

Browse files
authored
Update generator_callbacks scripts to handle individual modules (#71)
1 parent 64823b7 commit 8a2cea2

4 files changed

Lines changed: 218 additions & 25 deletions

File tree

packages/tizen_interop_callbacks/tizen/src/generated_callbacks.cc

Lines changed: 156 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1593,6 +1593,12 @@ PROXY_GROUP_NON_BLOCKING(ime_option_window_destroyed_cb, void* window, void* use
15931593
PROXY_GROUP_BLOCKING(ime_option_window_destroyed_cb, void* window, void* user_data)
15941594
#undef CB_PARAMS_NAMES
15951595

1596+
typedef void (*ime_position_align_set_cb)(int x, int y, Ecore_IMF_Input_Panel_Align align, void* user_data);
1597+
#define CB_PARAMS_NAMES x, y, align, user_data
1598+
PROXY_GROUP_NON_BLOCKING(ime_position_align_set_cb, int x, int y, Ecore_IMF_Input_Panel_Align align, void* user_data)
1599+
PROXY_GROUP_BLOCKING(ime_position_align_set_cb, int x, int y, Ecore_IMF_Input_Panel_Align align, void* user_data)
1600+
#undef CB_PARAMS_NAMES
1601+
15961602
typedef void (*ime_prediction_hint_data_set_cb)(const char* key, const char* value, void* user_data);
15971603
#define CB_PARAMS_NAMES key, value, user_data
15981604
PROXY_GROUP_NON_BLOCKING(ime_prediction_hint_data_set_cb, const char* key, const char* value, void* user_data)
@@ -1605,6 +1611,12 @@ PROXY_GROUP_NON_BLOCKING(ime_prediction_hint_set_cb, const char* prediction_hint
16051611
PROXY_GROUP_BLOCKING(ime_prediction_hint_set_cb, const char* prediction_hint, void* user_data)
16061612
#undef CB_PARAMS_NAMES
16071613

1614+
typedef void (*ime_process_input_device_event_cb)(some_enum device_type, void* device_event, void* user_data);
1615+
#define CB_PARAMS_NAMES device_type, device_event, user_data
1616+
PROXY_GROUP_NON_BLOCKING(ime_process_input_device_event_cb, some_enum device_type, void* device_event, void* user_data)
1617+
PROXY_GROUP_BLOCKING(ime_process_input_device_event_cb, some_enum device_type, void* device_event, void* user_data)
1618+
#undef CB_PARAMS_NAMES
1619+
16081620
typedef bool (*ime_process_key_event_cb)(some_enum key_code, some_enum key_mask, void* dev_info, void* user_data);
16091621
#define CB_PARAMS_NAMES key_code, key_mask, dev_info, user_data
16101622
PROXY_GROUP_RETURN(ime_process_key_event_cb, bool, some_enum key_code, some_enum key_mask, void* dev_info, void* user_data)
@@ -2912,6 +2924,36 @@ PROXY_GROUP_NON_BLOCKING(noti_ex_reporter_events_event_cb, void* handle, void* i
29122924
PROXY_GROUP_BLOCKING(noti_ex_reporter_events_event_cb, void* handle, void* info, void* items, int count, void* user_data)
29132925
#undef CB_PARAMS_NAMES
29142926

2927+
typedef void (*oauth2_access_token_cb)(void* response, void* user_data);
2928+
#define CB_PARAMS_NAMES response, user_data
2929+
PROXY_GROUP_NON_BLOCKING(oauth2_access_token_cb, void* response, void* user_data)
2930+
PROXY_GROUP_BLOCKING(oauth2_access_token_cb, void* response, void* user_data)
2931+
#undef CB_PARAMS_NAMES
2932+
2933+
typedef void (*oauth2_auth_grant_cb)(void* response, void* user_data);
2934+
#define CB_PARAMS_NAMES response, user_data
2935+
PROXY_GROUP_NON_BLOCKING(oauth2_auth_grant_cb, void* response, void* user_data)
2936+
PROXY_GROUP_BLOCKING(oauth2_auth_grant_cb, void* response, void* user_data)
2937+
#undef CB_PARAMS_NAMES
2938+
2939+
typedef void (*oauth2_refresh_token_cb)(void* response, void* user_data);
2940+
#define CB_PARAMS_NAMES response, user_data
2941+
PROXY_GROUP_NON_BLOCKING(oauth2_refresh_token_cb, void* response, void* user_data)
2942+
PROXY_GROUP_BLOCKING(oauth2_refresh_token_cb, void* response, void* user_data)
2943+
#undef CB_PARAMS_NAMES
2944+
2945+
typedef void (*oauth2_token_auth_url_cb)(void* response, void* user_data);
2946+
#define CB_PARAMS_NAMES response, user_data
2947+
PROXY_GROUP_NON_BLOCKING(oauth2_token_auth_url_cb, void* response, void* user_data)
2948+
PROXY_GROUP_BLOCKING(oauth2_token_auth_url_cb, void* response, void* user_data)
2949+
#undef CB_PARAMS_NAMES
2950+
2951+
typedef void (*oauth2_token_cb)(void* response, void* user_data);
2952+
#define CB_PARAMS_NAMES response, user_data
2953+
PROXY_GROUP_NON_BLOCKING(oauth2_token_cb, void* response, void* user_data)
2954+
PROXY_GROUP_BLOCKING(oauth2_token_cb, void* response, void* user_data)
2955+
#undef CB_PARAMS_NAMES
2956+
29152957
typedef bool (*package_info_app_cb)(some_enum comp_type, const char* app_id, void* user_data);
29162958
#define CB_PARAMS_NAMES comp_type, app_id, user_data
29172959
PROXY_GROUP_RETURN(package_info_app_cb, bool, some_enum comp_type, const char* app_id, void* user_data)
@@ -3992,6 +4034,23 @@ PROXY_GROUP_NON_BLOCKING(usb_host_transferred_cb, void* transfer, void* user_dat
39924034
PROXY_GROUP_BLOCKING(usb_host_transferred_cb, void* transfer, void* user_data)
39934035
#undef CB_PARAMS_NAMES
39944036

4037+
typedef bool (*vc_cmd_list_cb)(void* vc_command, void* user_data);
4038+
#define CB_PARAMS_NAMES vc_command, user_data
4039+
PROXY_GROUP_RETURN(vc_cmd_list_cb, bool, void* vc_command, void* user_data)
4040+
#undef CB_PARAMS_NAMES
4041+
4042+
typedef void (*vc_current_language_changed_cb)(const char* previous, const char* current, void* user_data);
4043+
#define CB_PARAMS_NAMES previous, current, user_data
4044+
PROXY_GROUP_NON_BLOCKING(vc_current_language_changed_cb, const char* previous, const char* current, void* user_data)
4045+
PROXY_GROUP_BLOCKING(vc_current_language_changed_cb, const char* previous, const char* current, void* user_data)
4046+
#undef CB_PARAMS_NAMES
4047+
4048+
typedef void (*vc_error_cb)(some_enum reason, void* user_data);
4049+
#define CB_PARAMS_NAMES reason, user_data
4050+
PROXY_GROUP_NON_BLOCKING(vc_error_cb, some_enum reason, void* user_data)
4051+
PROXY_GROUP_BLOCKING(vc_error_cb, some_enum reason, void* user_data)
4052+
#undef CB_PARAMS_NAMES
4053+
39954054
typedef bool (*vc_mgr_all_result_cb)(some_enum event, void* vc_cmd_list, const char* result, const char* msg, void* user_data);
39964055
#define CB_PARAMS_NAMES event, vc_cmd_list, result, msg, user_data
39974056
PROXY_GROUP_RETURN(vc_mgr_all_result_cb, bool, some_enum event, void* vc_cmd_list, const char* result, const char* msg, void* user_data)
@@ -4049,6 +4108,41 @@ PROXY_GROUP_NON_BLOCKING(vc_mgr_vc_tts_streaming_cb, int pid, int utt_id, some_e
40494108
PROXY_GROUP_BLOCKING(vc_mgr_vc_tts_streaming_cb, int pid, int utt_id, some_enum event, char* buffer, int len, void* user_data)
40504109
#undef CB_PARAMS_NAMES
40514110

4111+
typedef void (*vc_result_cb)(some_enum event, void* vc_cmd_list, const char* result, void* user_data);
4112+
#define CB_PARAMS_NAMES event, vc_cmd_list, result, user_data
4113+
PROXY_GROUP_NON_BLOCKING(vc_result_cb, some_enum event, void* vc_cmd_list, const char* result, void* user_data)
4114+
PROXY_GROUP_BLOCKING(vc_result_cb, some_enum event, void* vc_cmd_list, const char* result, void* user_data)
4115+
#undef CB_PARAMS_NAMES
4116+
4117+
typedef void (*vc_service_state_changed_cb)(some_enum previous, some_enum current, void* user_data);
4118+
#define CB_PARAMS_NAMES previous, current, user_data
4119+
PROXY_GROUP_NON_BLOCKING(vc_service_state_changed_cb, some_enum previous, some_enum current, void* user_data)
4120+
PROXY_GROUP_BLOCKING(vc_service_state_changed_cb, some_enum previous, some_enum current, void* user_data)
4121+
#undef CB_PARAMS_NAMES
4122+
4123+
typedef void (*vc_state_changed_cb)(some_enum previous, some_enum current, void* user_data);
4124+
#define CB_PARAMS_NAMES previous, current, user_data
4125+
PROXY_GROUP_NON_BLOCKING(vc_state_changed_cb, some_enum previous, some_enum current, void* user_data)
4126+
PROXY_GROUP_BLOCKING(vc_state_changed_cb, some_enum previous, some_enum current, void* user_data)
4127+
#undef CB_PARAMS_NAMES
4128+
4129+
typedef bool (*vc_supported_language_cb)(const char* language, void* user_data);
4130+
#define CB_PARAMS_NAMES language, user_data
4131+
PROXY_GROUP_RETURN(vc_supported_language_cb, bool, const char* language, void* user_data)
4132+
#undef CB_PARAMS_NAMES
4133+
4134+
typedef void (*vc_tts_streaming_cb)(some_enum event, char* buffer, int len, int utt_id, void* user_data);
4135+
#define CB_PARAMS_NAMES event, buffer, len, utt_id, user_data
4136+
PROXY_GROUP_NON_BLOCKING(vc_tts_streaming_cb, some_enum event, char* buffer, int len, int utt_id, void* user_data)
4137+
PROXY_GROUP_BLOCKING(vc_tts_streaming_cb, some_enum event, char* buffer, int len, int utt_id, void* user_data)
4138+
#undef CB_PARAMS_NAMES
4139+
4140+
typedef void (*vc_tts_utterance_status_cb)(int utt_id, some_enum status, void* user_data);
4141+
#define CB_PARAMS_NAMES utt_id, status, user_data
4142+
PROXY_GROUP_NON_BLOCKING(vc_tts_utterance_status_cb, int utt_id, some_enum status, void* user_data)
4143+
PROXY_GROUP_BLOCKING(vc_tts_utterance_status_cb, int utt_id, some_enum status, void* user_data)
4144+
#undef CB_PARAMS_NAMES
4145+
40524146
#define BASE_CALLBACK_ID_vce_cancel_cb 155
40534147
typedef int (*vce_cancel_cb)();
40544148
PROXY_GROUP_RETURN_NO_USER_DATA_NO_PARAM(vce_cancel_cb, int)
@@ -4201,6 +4295,30 @@ PROXY_GROUP_RETURN(vce_tts_audio_format_request_cb, int, int* rate, int* channel
42014295
typedef int (*vce_unset_commands_cb)();
42024296
PROXY_GROUP_RETURN_NO_USER_DATA_NO_PARAM(vce_unset_commands_cb, int)
42034297

4298+
typedef void (*wauthn_display_qrcode_cb)(const char* qr_contents, void* user_data);
4299+
#define CB_PARAMS_NAMES qr_contents, user_data
4300+
PROXY_GROUP_NON_BLOCKING(wauthn_display_qrcode_cb, const char* qr_contents, void* user_data)
4301+
PROXY_GROUP_BLOCKING(wauthn_display_qrcode_cb, const char* qr_contents, void* user_data)
4302+
#undef CB_PARAMS_NAMES
4303+
4304+
typedef void (*wauthn_ga_on_response_cb)(const void* pubkey_cred, some_enum result, void* user_data);
4305+
#define CB_PARAMS_NAMES pubkey_cred, result, user_data
4306+
PROXY_GROUP_NON_BLOCKING(wauthn_ga_on_response_cb, const void* pubkey_cred, some_enum result, void* user_data)
4307+
PROXY_GROUP_BLOCKING(wauthn_ga_on_response_cb, const void* pubkey_cred, some_enum result, void* user_data)
4308+
#undef CB_PARAMS_NAMES
4309+
4310+
typedef void (*wauthn_mc_on_response_cb)(const void* pubkey_cred, some_enum result, void* user_data);
4311+
#define CB_PARAMS_NAMES pubkey_cred, result, user_data
4312+
PROXY_GROUP_NON_BLOCKING(wauthn_mc_on_response_cb, const void* pubkey_cred, some_enum result, void* user_data)
4313+
PROXY_GROUP_BLOCKING(wauthn_mc_on_response_cb, const void* pubkey_cred, some_enum result, void* user_data)
4314+
#undef CB_PARAMS_NAMES
4315+
4316+
typedef void (*wauthn_update_linked_data_cb)(const void* linked_data, some_enum result, void* user_data);
4317+
#define CB_PARAMS_NAMES linked_data, result, user_data
4318+
PROXY_GROUP_NON_BLOCKING(wauthn_update_linked_data_cb, const void* linked_data, some_enum result, void* user_data)
4319+
PROXY_GROUP_BLOCKING(wauthn_update_linked_data_cb, const void* linked_data, some_enum result, void* user_data)
4320+
#undef CB_PARAMS_NAMES
4321+
42044322
typedef void (*wav_player_playback_completed_cb)(int id, void* user_data);
42054323
#define CB_PARAMS_NAMES id, user_data
42064324
PROXY_GROUP_NON_BLOCKING(wav_player_playback_completed_cb, int id, void* user_data)
@@ -5070,10 +5188,14 @@ std::map<std::string, MultiProxyFunctionsContainer> multi_proxy_map = {
50705188
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_ime_option_window_created_cb)
50715189
MULTI_PROXY_MAP_ENTRY(platform_blocking_ime_option_window_destroyed_cb)
50725190
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_ime_option_window_destroyed_cb)
5191+
MULTI_PROXY_MAP_ENTRY(platform_blocking_ime_position_align_set_cb)
5192+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_ime_position_align_set_cb)
50735193
MULTI_PROXY_MAP_ENTRY(platform_blocking_ime_prediction_hint_data_set_cb)
50745194
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_ime_prediction_hint_data_set_cb)
50755195
MULTI_PROXY_MAP_ENTRY(platform_blocking_ime_prediction_hint_set_cb)
50765196
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_ime_prediction_hint_set_cb)
5197+
MULTI_PROXY_MAP_ENTRY(platform_blocking_ime_process_input_device_event_cb)
5198+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_ime_process_input_device_event_cb)
50775199
MULTI_PROXY_MAP_ENTRY(platform_blocking_ime_process_key_event_cb)
50785200
MULTI_PROXY_MAP_ENTRY(platform_blocking_ime_process_key_event_with_keycode_cb)
50795201
MULTI_PROXY_MAP_ENTRY(platform_blocking_ime_return_key_state_set_cb)
@@ -5468,6 +5590,16 @@ std::map<std::string, MultiProxyFunctionsContainer> multi_proxy_map = {
54685590
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_noti_ex_reporter_events_error_cb)
54695591
MULTI_PROXY_MAP_ENTRY(platform_blocking_noti_ex_reporter_events_event_cb)
54705592
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_noti_ex_reporter_events_event_cb)
5593+
MULTI_PROXY_MAP_ENTRY(platform_blocking_oauth2_access_token_cb)
5594+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_oauth2_access_token_cb)
5595+
MULTI_PROXY_MAP_ENTRY(platform_blocking_oauth2_auth_grant_cb)
5596+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_oauth2_auth_grant_cb)
5597+
MULTI_PROXY_MAP_ENTRY(platform_blocking_oauth2_refresh_token_cb)
5598+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_oauth2_refresh_token_cb)
5599+
MULTI_PROXY_MAP_ENTRY(platform_blocking_oauth2_token_auth_url_cb)
5600+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_oauth2_token_auth_url_cb)
5601+
MULTI_PROXY_MAP_ENTRY(platform_blocking_oauth2_token_cb)
5602+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_oauth2_token_cb)
54715603
MULTI_PROXY_MAP_ENTRY(platform_blocking_package_info_app_cb)
54725604
MULTI_PROXY_MAP_ENTRY(platform_blocking_package_info_cert_info_cb)
54735605
MULTI_PROXY_MAP_ENTRY(platform_blocking_package_info_dependency_info_cb)
@@ -5770,6 +5902,11 @@ std::map<std::string, MultiProxyFunctionsContainer> multi_proxy_map = {
57705902
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_usb_host_hotplug_cb)
57715903
MULTI_PROXY_MAP_ENTRY(platform_blocking_usb_host_transferred_cb)
57725904
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_usb_host_transferred_cb)
5905+
MULTI_PROXY_MAP_ENTRY(platform_blocking_vc_cmd_list_cb)
5906+
MULTI_PROXY_MAP_ENTRY(platform_blocking_vc_current_language_changed_cb)
5907+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_vc_current_language_changed_cb)
5908+
MULTI_PROXY_MAP_ENTRY(platform_blocking_vc_error_cb)
5909+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_vc_error_cb)
57735910
MULTI_PROXY_MAP_ENTRY(platform_blocking_vc_mgr_all_result_cb)
57745911
MULTI_PROXY_MAP_ENTRY(platform_blocking_vc_mgr_begin_speech_detected_cb)
57755912
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_vc_mgr_begin_speech_detected_cb)
@@ -5787,6 +5924,17 @@ std::map<std::string, MultiProxyFunctionsContainer> multi_proxy_map = {
57875924
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_vc_mgr_specific_engine_result_cb)
57885925
MULTI_PROXY_MAP_ENTRY(platform_blocking_vc_mgr_vc_tts_streaming_cb)
57895926
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_vc_mgr_vc_tts_streaming_cb)
5927+
MULTI_PROXY_MAP_ENTRY(platform_blocking_vc_result_cb)
5928+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_vc_result_cb)
5929+
MULTI_PROXY_MAP_ENTRY(platform_blocking_vc_service_state_changed_cb)
5930+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_vc_service_state_changed_cb)
5931+
MULTI_PROXY_MAP_ENTRY(platform_blocking_vc_state_changed_cb)
5932+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_vc_state_changed_cb)
5933+
MULTI_PROXY_MAP_ENTRY(platform_blocking_vc_supported_language_cb)
5934+
MULTI_PROXY_MAP_ENTRY(platform_blocking_vc_tts_streaming_cb)
5935+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_vc_tts_streaming_cb)
5936+
MULTI_PROXY_MAP_ENTRY(platform_blocking_vc_tts_utterance_status_cb)
5937+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_vc_tts_utterance_status_cb)
57905938
MULTI_PROXY_MAP_ENTRY(platform_blocking_vce_cancel_cb)
57915939
MULTI_PROXY_MAP_ENTRY(platform_blocking_vce_cancel_tts_cb)
57925940
MULTI_PROXY_MAP_ENTRY(platform_blocking_vce_command_cb)
@@ -5815,6 +5963,14 @@ std::map<std::string, MultiProxyFunctionsContainer> multi_proxy_map = {
58155963
MULTI_PROXY_MAP_ENTRY(platform_blocking_vce_supported_language_cb)
58165964
MULTI_PROXY_MAP_ENTRY(platform_blocking_vce_tts_audio_format_request_cb)
58175965
MULTI_PROXY_MAP_ENTRY(platform_blocking_vce_unset_commands_cb)
5966+
MULTI_PROXY_MAP_ENTRY(platform_blocking_wauthn_display_qrcode_cb)
5967+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_wauthn_display_qrcode_cb)
5968+
MULTI_PROXY_MAP_ENTRY(platform_blocking_wauthn_ga_on_response_cb)
5969+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_wauthn_ga_on_response_cb)
5970+
MULTI_PROXY_MAP_ENTRY(platform_blocking_wauthn_mc_on_response_cb)
5971+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_wauthn_mc_on_response_cb)
5972+
MULTI_PROXY_MAP_ENTRY(platform_blocking_wauthn_update_linked_data_cb)
5973+
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_wauthn_update_linked_data_cb)
58185974
MULTI_PROXY_MAP_ENTRY(platform_blocking_wav_player_playback_completed_cb)
58195975
MULTI_PROXY_MAP_ENTRY(platform_non_blocking_wav_player_playback_completed_cb)
58205976
MULTI_PROXY_MAP_ENTRY(platform_blocking_webrtc_data_channel_buffered_amount_low_cb)

packages/tizen_interop_callbacks/tizen/src/types.h

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,18 @@ typedef enum { SOME_ENUM_0 } some_enum;
3636

3737
typedef void *void_pointer;
3838

39+
// This enum is used as an argument for the ime_position_align_set_cb callback
40+
// function added in Tizen 9.0.
41+
typedef enum _Ecore_IMF_Input_Panel_Align {
42+
ECORE_IMF_INPUT_PANEL_ALIGN_TOP_LEFT, /**< The top-left corner */
43+
ECORE_IMF_INPUT_PANEL_ALIGN_TOP_CENTER, /**< The top-center position */
44+
ECORE_IMF_INPUT_PANEL_ALIGN_TOP_RIGHT, /**< The top-right corner */
45+
ECORE_IMF_INPUT_PANEL_ALIGN_MIDDLE_LEFT, /**< The middle-left position */
46+
ECORE_IMF_INPUT_PANEL_ALIGN_MIDDLE_CENTER, /**< The middle-center position */
47+
ECORE_IMF_INPUT_PANEL_ALIGN_MIDDLE_RIGHT, /**< The middle-right position */
48+
ECORE_IMF_INPUT_PANEL_ALIGN_BOTTOM_LEFT, /**< The bottom-left corner */
49+
ECORE_IMF_INPUT_PANEL_ALIGN_BOTTOM_CENTER, /**< The bottom-center position */
50+
ECORE_IMF_INPUT_PANEL_ALIGN_BOTTOM_RIGHT, /**< The bottom-right corner */
51+
} Ecore_IMF_Input_Panel_Align;
52+
3953
#endif // TIZEN_INTEROP_CALLBACKS_TYPES_H_

scripts/callbacks_generator/gen_callbacks.py

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import yaml
1111
import logging
1212
import argparse
13+
import re
1314
from io import StringIO
1415
from typing import List, Mapping, Callable, Set
1516

@@ -488,11 +489,12 @@ def read_comment(self, idx):
488489
# Move until '*/' is found.
489490
# We assume that comments have the closing '*/'.
490491
t = self.tokens
491-
while t[idx]._type != self.TOKEN_COMMENT_END:
492+
while idx < len(t) and t[idx]._type != self.TOKEN_COMMENT_END:
492493
idx += 1
493494

494495
# Move to the token after '*/'.
495-
idx += 1
496+
if idx < len(t):
497+
idx += 1
496498

497499
return idx
498500

@@ -692,11 +694,12 @@ def get_type_mapping(self):
692694

693695
def set_bindings_filter(self, bindings_file_paths: List[str]):
694696
names = set()
697+
typedef_re = re.compile(r'^\s*typedef\s+([a-zA-Z0-9_]+)', re.MULTILINE)
695698
for bindings_path in bindings_file_paths:
696-
with open(bindings_path) as bindings_file:
697-
for line in bindings_file:
698-
if line.startswith('typedef '):
699-
names.add(line.split()[1])
699+
with open(bindings_path, encoding='utf-8') as bindings_file:
700+
content = bindings_file.read()
701+
for match in typedef_re.finditer(content):
702+
names.add(match.group(1))
700703

701704
self.allowed_names = names
702705

@@ -916,24 +919,27 @@ def find_headers_by_config(config_path):
916919
files_to_find = set()
917920
dirs_to_find = set()
918921
for pattern in selected:
919-
assert pattern.startswith('**/')
920-
if pattern.endswith('/*.h'):
921-
log.debug('DIR %s', pattern[3:-4])
922-
dirs_to_find.add('/' + pattern[3:-4])
923-
elif pattern.endswith('.h') and pattern.count('/') == 1:
924-
log.debug('FILE %s', pattern[3:])
925-
files_to_find.add(pattern[3:])
922+
if pattern.startswith('**/'):
923+
if pattern.endswith('/*.h'):
924+
log.debug('DIR %s', pattern[3:-4])
925+
dirs_to_find.add('/' + pattern[3:-4])
926+
elif pattern.endswith('.h') and pattern.count('/') == 1:
927+
log.debug('FILE %s', pattern[3:])
928+
files_to_find.add(pattern[3:])
929+
else:
930+
raise NotImplementedError(
931+
f'config include-directives `{pattern}` not supported')
926932
else:
927-
raise NotImplementedError(
928-
f'config include-directives `{pattern}` not supported')
933+
log.warning('Skipping unsupported pattern %s', pattern)
929934

930935
items = set()
931936

932937
for directory, _, files in os.walk(rootstrap_include):
933938
match = files_to_find.intersection(files)
934939
if match:
935940
log.debug('%s %d %d', match, len(match), len(files_to_find))
936-
items.update(os.path.join(directory, m) for m in match)
941+
# Include all headers in the directory to find related types (e.g. _common.h, _type.h)
942+
items.add(os.path.join(directory, '*.h'))
937943
for p in dirs_to_find:
938944
if directory.endswith(p):
939945
log.debug('--- %s [%s] %s', directory, p, files)

0 commit comments

Comments
 (0)