Skip to content

Commit

Permalink
Merge remote-tracking branch 'lethosor/codegen-new-types'
Browse files Browse the repository at this point in the history
  • Loading branch information
lethosor committed Aug 3, 2023
2 parents fc4961f + 7f859ce commit c87d226
Show file tree
Hide file tree
Showing 8 changed files with 33 additions and 16 deletions.
4 changes: 3 additions & 1 deletion Common.pm
Original file line number Diff line number Diff line change
Expand Up @@ -173,12 +173,14 @@ sub emit_block(&;$$%) {
my @primitive_type_list =
qw(int8_t uint8_t int16_t uint16_t
int32_t uint32_t int64_t uint64_t
long
long ulong
size_t ssize_t
s-float d-float
bool flag-bit
padding static-string);

my %primitive_aliases = (
'ulong' => 'unsigned long',
's-float' => 'float',
'd-float' => 'double',
'static-string' => 'char',
Expand Down
2 changes: 2 additions & 0 deletions StructFields.pm
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,8 @@ sub add_simple_init($);
my %custom_primitive_handlers = (
'stl-string' => sub { header_ref("string"); return "std::string"; },
'stl-fstream' => sub { header_ref("fstream"); return "std::fstream"; },
'stl-mutex' => sub { header_ref("mutex"); return "std::mutex"; },
'stl-condition-variable' => sub { header_ref("condition_variable"); return "std::condition_variable"; },
);

my %custom_primitive_inits = (
Expand Down
12 changes: 10 additions & 2 deletions data-definition.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -204,10 +204,13 @@
<xs:element name="int32_t" type="IntegerField" />
<xs:element name="int64_t" type="IntegerField" />
<xs:element name="long" type="IntegerField" />
<xs:element name="ssize_t" type="IntegerField" />
<xs:element name="uint8_t" type="IntegerField" />
<xs:element name="uint16_t" type="IntegerField" />
<xs:element name="uint32_t" type="IntegerField" />
<xs:element name="uint64_t" type="IntegerField" />
<xs:element name="ulong" type="IntegerField" />
<xs:element name="size_t" type="IntegerField" />
<xs:element name="s-float" type="FloatField" />
<xs:element name="d-float" type="FloatField" />
<xs:element name="stl-string" type="StlStringField" />
Expand All @@ -216,7 +219,9 @@
<xs:element name="stl-deque" type="StlDequeField" />
<xs:element name="stl-set" type="StlSetField" />
<xs:element name="stl-map" type="StlMapField" />
<xs:element name="stl-fstream" type="StlFStreamField" />
<xs:element name="stl-fstream" type="OpaqueField" />
<xs:element name="stl-mutex" type="OpaqueField" />
<xs:element name="stl-condition-variable" type="OpaqueField" />
<xs:element name="df-linked-list" type="DfLinkedListField" />
<xs:element name="df-array" type="DfArrayField" />
<xs:element name="df-flagarray" type="DfFlagArrayField" />
Expand Down Expand Up @@ -384,7 +389,7 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="StlFStreamField">
<xs:complexType name="OpaqueField">
<xs:complexContent>
<xs:extension base="SimpleFieldType">
</xs:extension>
Expand Down Expand Up @@ -551,6 +556,7 @@
<xs:enumeration value="int32_t" />
<xs:enumeration value="int64_t" />
<xs:enumeration value="long" />
<xs:enumeration value="ssize_t" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="UnsignedIntegerType">
Expand All @@ -559,6 +565,8 @@
<xs:enumeration value="uint16_t" />
<xs:enumeration value="uint32_t" />
<xs:enumeration value="uint64_t" />
<xs:enumeration value="ulong" />
<xs:enumeration value="size_t" />
</xs:restriction>
</xs:simpleType>

Expand Down
14 changes: 7 additions & 7 deletions df.graphics.xml
Original file line number Diff line number Diff line change
Expand Up @@ -5036,8 +5036,8 @@
<bool name='async_paused'/>

<compound name='async_tobox'>
<padding name='mtx' size='80'/> should be std::mutex
<padding name='cv' size='72'/> should be std::condition_variable
<stl-mutex name='mtx'/>
<stl-condition-variable name='cv'/>
<stl-deque name='vals'>
<enum name='cmd'>
<enum-item name='pause'/>
Expand All @@ -5051,8 +5051,8 @@
</compound>

<compound name='async_frombox'>
<padding name='mtx' size='80'/> should be std::mutex
<padding name='cv' size='72'/> should be std::condition_variable
<stl-mutex name='mtx'/>
<stl-condition-variable name='cv'/>
<stl-deque name='vals'>
<enum name='msg'>
<enum-item name='quit'/>
Expand All @@ -5074,16 +5074,16 @@
</compound>

<compound name='async_zoom'>
<padding name='mtx' size='80'/> should be std::mutex
<padding name='cv' size='72'/> should be std::condition_variable
<stl-mutex name='mtx'/>
<stl-condition-variable name='cv'/>
<stl-deque name='vals'>
<enum base-type='int32_t' type-name='zoom_commands'/>
</stl-deque>
</compound>

<pointer name='async_fromcomplete'/>

<uint32_t name='renderer_threadid'/>
<ulong name='renderer_threadid'/>
<bool name='must_do_render_things_before_display'/>

<stl-string name='command_line'/>
Expand Down
6 changes: 3 additions & 3 deletions df.ui-menus.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1416,7 +1416,7 @@
<stl-vector type-name='int32_t' name='squad_id'/>
<stl-vector type-name='int32_t' name='squad_pos'/>

<uint32_t name='last_tick_update'/>
<ulong name='last_tick_update'/>

<bool name='customizing_equipment'/>
<int32_t name='customizing_squad_id'/>
Expand Down Expand Up @@ -1474,7 +1474,7 @@
<stl-vector type-name='int32_t' name='squad_id'/>
<int32_t name='viewing_months_squad_id'/>

<uint32_t name='last_tick_update'/>
<ulong name='last_tick_update'/>

<bool name='editing_routines'/>
<int32_t name='scroll_position_edit_routine'/>
Expand Down Expand Up @@ -1688,7 +1688,7 @@
<static-array type-name='int32_t' count='6' name='trait_magnitude'/>
<int32_t name='trait_num'/>

<uint32_t name='last_tick_update'/>
<ulong name='last_tick_update'/>
<static-array type-name='int32_t' count='4' name='reqroom' comment='demands'/>
<static-array type-name='int32_t' count='4' name='curroom' comment='demands'/>
<static-array type-name='int32_t' count='149' index-enum='job_skill' name='labor_skill_ind'/>
Expand Down
2 changes: 1 addition & 1 deletion df.units.xml
Original file line number Diff line number Diff line change
Expand Up @@ -1246,7 +1246,7 @@
<static-array name='texpos_currently_in_use' count='3'><static-array count='2' type-name='bool'/></static-array>

<int8_t name='cached_glowtile_type'/>
<int64_t name='pool_index'/> this should be size_t but we don't support size_t in structures yet
<size_t name='pool_index'/>
<padding name='mtx' size='80'/> should be std::mutex

<virtual-methods>
Expand Down
2 changes: 1 addition & 1 deletion df.viewscreen.xml
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,7 @@
</class-type>

<class-type type-name='widget_tabs' original-name='widgets::tabs' inherits-from='widget_container'>
<int64_t name='cur_idx'/> this should be size_t but we don't support size_t in structures yet
<size_t name='cur_idx'/>
<stl-vector name='tab_labels' pointer-type='stl-string'/>
</class-type>

Expand Down
7 changes: 6 additions & 1 deletion lower-1.xslt
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,10 @@ Error: field <xsl:value-of select='$enum-key'/> corresponds to an enum value of
<prim-type ld:meta='number' ld:subtype='uint32_t' ld:unsigned='true' ld:bits='32'/>
<prim-type ld:meta='number' ld:subtype='int64_t' ld:bits='64'/>
<prim-type ld:meta='number' ld:subtype='uint64_t' ld:unsigned='true' ld:bits='64'/>
<prim-type ld:meta='number' ld:subtype='ssize_t' ld:bits=''/>
<prim-type ld:meta='number' ld:subtype='size_t' ld:unsigned='true' ld:bits=''/>
<prim-type ld:meta='number' ld:subtype='long' ld:bits=''/>
<prim-type ld:meta='number' ld:subtype='ulong' ld:bits=''/>
<prim-type ld:meta='number' ld:subtype='bool' ld:bits='8'/>
<prim-type ld:meta='number' ld:subtype='s-float' ld:bits='32'/>
<prim-type ld:meta='number' ld:subtype='d-float' ld:bits='64'/>
Expand All @@ -212,9 +215,11 @@ Error: field <xsl:value-of select='$enum-key'/> corresponds to an enum value of

<prim-type ld:meta='primitive' ld:subtype='stl-string'/>
<prim-type ld:meta='primitive' ld:subtype='stl-fstream'/>
<prim-type ld:meta='primitive' ld:subtype='stl-mutex'/>
<prim-type ld:meta='primitive' ld:subtype='stl-condition-variable'/>
</ld:primitive-types>

<xsl:template match='int8_t|uint8_t|int16_t|uint16_t|int32_t|uint32_t|int64_t|uint64_t|long|bool|flag-bit|s-float|d-float|padding|static-string|ptr-string|stl-string|stl-fstream'>
<xsl:template match='int8_t|uint8_t|int16_t|uint16_t|int32_t|uint32_t|int64_t|uint64_t|size_t|ssize_t|long|ulong|bool|flag-bit|s-float|d-float|padding|static-string|ptr-string|stl-string|stl-fstream|stl-mutex|stl-condition-variable'>
<xsl:param name='level' select='-1'/>
<ld:field>
<xsl:apply-templates select='@*'/>
Expand Down

0 comments on commit c87d226

Please sign in to comment.