@@ -236,12 +236,12 @@ and end_pragma = parse
236236
237237 {
238238 let initialized = ref false
239- let init ~ freeton =
239+ let init2 ?( list = [] ) () =
240240 if not ! initialized then begin
241241 initialized := true ;
242242 List. iter (fun (kwd , token ) ->
243243 add_keyword kwd token
244- ) [ " import" , IMPORT ;
244+ ) ( [ " import" , IMPORT ;
245245 " as" , AS ;
246246 " from" , FROM ;
247247 " abstract" , ABSTRACT ;
@@ -312,18 +312,23 @@ let init ~freeton =
312312 " days" , NUMBERUNIT (Days );
313313 " weeks" , NUMBERUNIT (Weeks );
314314 " years" , NUMBERUNIT (Years );
315- ];
316- if freeton then
317- List. iter (fun (kwd , token ) ->
318- add_keyword kwd token
319- ) [
315+ ] @ list )
316+ end
317+
318+ let init ~freeton =
319+ if freeton then
320+ init2 () ~list: [
320321 " inline" , INLINE ;
321322 " static" , STATIC ;
322323 " optional" , OPTIONAL ;
323324 " onBounce" , ONBOUNCE ;
324325 " repeat" , REPEAT ;
325326 " responsible" , RESPONSIBLE ;
326327
328+ " TvmCell" , TYPEABSTRACT " TvmCell" ;
329+ " TvmSlice" , TYPEABSTRACT " TvmSlice" ;
330+ " TvmBuilder" , TYPEABSTRACT " TvmBuilder" ;
331+
327332 " nano" , NUMBERUNIT (Nanoton );
328333 " nanoton" , NUMBERUNIT (Nanoton );
329334 " nTon" , NUMBERUNIT (Nanoton );
@@ -367,7 +372,8 @@ if freeton then
367372
368373 " gigaever" , NUMBERUNIT (Gigaever );
369374 " GEver" , NUMBERUNIT (Gigaever );
370- ];
371- ()
372- end
375+ ]
376+ else
377+ init2 ()
378+
373379}
0 commit comments