14 years
edited 8 years
1 library TableField /* v1.0.0.1
2 ************************************************************************************3 *4 * */ uses /*
5 *6 * */ Table /*
7 * */ Init /*
8 *9 ************************************************************************************10 *11 * //! textmacro CREATE_TABLE_FIELD takes ACCESS_MODIFIER, TYPE, NAME, RETURN_TYPE12 * - creates a table field surrounded by method operators13 *14 * //! textmacro INITIALIZE_TABLE_FIELD takes NAME15 * - initializes table field16 * - used in onInit17 *18 * //! textmacro CREATE_TABLE_FIELD_ARRAY takes TYPE, NAME, RETURN_TYPE19 * - creates a struct that acts as an array20 * - not used in a struct21 *22 * //! textmacro USE_TABLE_FIELD_ARRAY takes ACCESS_MODIFIER, NAME23 * - creates a field of a struct array24 * - used in a struct25 *26 ************************************************************************************/27 //! textmacro CREATE_TABLE_FIELD takes ACCESS_MODIFIER, TYPE, NAME, RETURN_TYPE28 private static Table t$NAME$
29
30 $ACCESS_MODIFIER$ method operator $NAME$ takes nothing returns $RETURN_TYPE$
31 return t$NAME$.$TYPE$[this]
32 endmethod33 $ACCESS_MODIFIER$ method operator $NAME$= takes $RETURN_TYPE$ value returns nothing
34 set t$NAME$.$TYPE$[this] = value
35 endmethod36 $ACCESS_MODIFIER$ method $NAME$_clear takes nothing returns nothing
37 call t$NAME$.$TYPE$.remove(this)
38 endmethod39 //! endtextmacro40
41 //! textmacro CREATE_TABLE_FIELD_ARRAY takes TYPE, NAME, RETURN_TYPE42 private struct T$NAME$ extends array
43 private static Table table
44
45 method operator [] takes integer index returns $RETURN_TYPE$
46 return table.$TYPE$[index]
47 endmethod48 method operator []= takes integer index, $RETURN_TYPE$ value returns nothing
49 set table.$TYPE$[index] = value
50 endmethod51 static method remove takes integer index returns nothing
52 call table.$TYPE$.remove(index)
53 endmethod54 static method clear takes nothing returns nothing
55 call table.flush()
56 endmethod57
58 private static method init takes nothing returns nothing
59 set table = Table.create()
60 endmethod61
62 implement Init63 endstruct64 //! endtextmacro65
66 //! textmacro USE_TABLE_FIELD_ARRAY takes ACCESS_MODIFIER, NAME67 $ACCESS_MODIFIER$ static T$NAME$ $NAME$ = 0
68 //! endtextmacro69
70 //! textmacro INITIALIZE_TABLE_FIELD takes NAME71 set t$NAME$ = Table.create()
72 //! endtextmacro73 endlibrary