@@ -28,13 +28,15 @@ typedef enum {
2828	KIND_PATH ,
2929	KIND_RESPONSE ,
3030	KIND_PARAMETER ,
31+ 	KIND_TITLE ,
3132} openapiKind ;
3233
3334static  kindDefinition  OpenAPIKinds  [] =  {
3435	{ true, 'd' , "schema" , "schemas"  },
3536	{ true, 'p' , "path" , "paths"  },
3637	{ true, 'R' , "response" , "responses"  },
3738	{ true, 'P' , "parameter" , "parameters"  },
39+ 	{ true, 't' , "title" , "titles"  },
3840};
3941
4042#define  KEY_UNKNOWN  KEYWORD_NONE
@@ -45,6 +47,8 @@ enum openapiKeys {
4547	KEY_PARAMETERS ,
4648	KEY_RESPONSES ,
4749	KEY_DEFINITIONS ,
50+ 	KEY_INFO ,
51+ 	KEY_TITLE ,
4852};
4953
5054static  const  keywordTable  OpenAPIKeywordTable [] =  {
@@ -54,6 +58,8 @@ static const keywordTable OpenAPIKeywordTable[] = {
5458	{ "parameters" ,  KEY_PARAMETERS   },
5559	{ "responses" ,   KEY_RESPONSES    },
5660	{ "definitions" , KEY_DEFINITIONS  },
61+ 	{ "info" ,        KEY_INFO  },
62+ 	{ "title" ,       KEY_TITLE  },
5763};
5864
5965struct  yamlBlockTypeStack  {
@@ -195,6 +201,11 @@ static const enum openapiKeys definitions2Keys[] = {
195201	KEY_DEFINITIONS ,
196202};
197203
204+ static  const  enum  openapiKeys  title3Keys [] =  {
205+ 	KEY_TITLE ,
206+ 	KEY_INFO ,
207+ };
208+ 
198209const  struct  tagSource  tagSources [] =  {
199210	{
200211		KIND_PATH ,
@@ -233,6 +244,14 @@ const struct tagSource tagSources[] = {
233244	},
234245};
235246
247+ const  struct  tagSource  tagValueSources [] =  {
248+ 	{
249+ 		KIND_TITLE ,
250+ 		title3Keys ,
251+ 		ARRAY_SIZE  (title3Keys ),
252+ 	},
253+ };
254+ 
236255static  void  handleToken (struct  sOpenAPISubparser  * openapi , yaml_token_t  * token ,
237256						const  struct  tagSource  * tss , size_t  ts_count )
238257{
@@ -260,6 +279,12 @@ static void handleKey(struct sOpenAPISubparser *openapi,
260279	handleToken  (openapi , token , tagSources , ARRAY_SIZE  (tagSources ));
261280}
262281
282+ static  void  handleValue (struct  sOpenAPISubparser  * openapi ,
283+ 						yaml_token_t  * token )
284+ {
285+ 	handleToken  (openapi , token , tagValueSources , ARRAY_SIZE  (tagValueSources ));
286+ }
287+ 
263288static  void 	openapiPlayStateMachine  (struct  sOpenAPISubparser  * openapi ,
264289									 yaml_token_t  * token )
265290{
@@ -285,6 +310,8 @@ static void	openapiPlayStateMachine (struct sOpenAPISubparser *openapi,
285310			break ;
286311		case  DSTAT_LAST_VALUE :
287312			TRACE_PRINT ("  value: %s" , (char * )token -> data .scalar .value );
313+ 			if  (openapi -> type_stack )
314+ 				handleValue  (openapi , token );
288315			break ;
289316		default :
290317			break ;
0 commit comments