Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// CODE ///
- func __getindex( index : int32 ) : T
- {
- if( index < 0 || index >= m_size )
- {
- WARNING( "array index out of bounds" );
- return T();
- }
- return m_data[ index ];
- }
- /// OUTPUT ///
- FUNC (struct=6 op=30 opsub=0 tt=75)
- {
- name = 'data1.__getindex'
- orig_datatype = 'T'
- datatype = ''
- orig_typeinfo:
- IDENT (struct=12 op=1 opsub=0 tt=78)
- name = 'T'
- typeinfo: <null>
- params:
- ARG (struct=2 op=10 opsub=0 tt=78)
- {
- name = 'index'
- orig_datatype = 'int32'
- datatype = ''
- orig_typeinfo:
- IDENT (struct=12 op=1 opsub=0 tt=78)
- name = 'int32'
- typeinfo: <null>
- value: <null>
- }
- code:
- BLOCK (struct=4 op=21 opsub=0 tt=75)
- {
- locals: <null>
- code:
- {
- IF/ELSE (struct=9 op=22 opsub=0 tt=75)
- {
- test:
- || (struct=7 op=4 opsub=0 tt=226)
- {
- arg:
- {
- < (struct=7 op=4 opsub=0 tt=206)
- {
- arg:
- {
- IDENT (struct=12 op=1 opsub=0 tt=78)
- name = 'index'
- uint8(0) (struct=13 op=3 opsub=0 tt=86)
- }
- }
- >= (struct=7 op=4 opsub=0 tt=205)
- {
- arg:
- {
- IDENT (struct=12 op=1 opsub=0 tt=78)
- name = 'index'
- IDENT (struct=12 op=1 opsub=0 tt=78)
- name = 'm_size'
- }
- }
- }
- }
- ontrue:
- BLOCK (struct=4 op=21 opsub=0 tt=78)
- {
- locals: <null>
- code:
- {
- FCALL (struct=7 op=6 opsub=0 tt=40)
- {
- arg:
- {
- IDENT (struct=12 op=1 opsub=0 tt=78)
- name = 'WARNING'
- EXPR_LIST (struct=7 op=15 opsub=0 tt=40)
- {
- arg:
- str(array index out of bounds) (struct=13 op=3 opsub=0 tt=83)
- }
- }
- }
- RETURN (struct=7 op=18 opsub=0 tt=78)
- {
- arg:
- FCALL (struct=7 op=6 opsub=0 tt=40)
- {
- arg:
- {
- IDENT (struct=12 op=1 opsub=0 tt=78)
- name = 'T'
- EXPR_LIST (struct=7 op=15 opsub=0 tt=40)
- {
- arg: <null>
- }
- }
- }
- }
- }
- }
- onfalse: <null>
- }
- RETURN (struct=7 op=18 opsub=0 tt=78)
- {
- arg:
- INDEX (struct=7 op=7 opsub=0 tt=91)
- {
- arg:
- {
- IDENT (struct=12 op=1 opsub=0 tt=78)
- name = 'm_data'
- IDENT (struct=12 op=1 opsub=0 tt=78)
- name = 'index'
- }
- }
- }
- }
- }
- bytecode:
- DECLARG <int32> index [11]
- IF
- CONST <uint8> 0 [25] : 00
- LT <bool> 1 [28] <= index [11], 0 [25]
- GTEQ <> 2 [29] <= index [11], m_size [13]
- BLN_OR <bool> 3 [30] <= 1 [28], 2 [29]
- DO
- FCALL <> 4 [31] <= func:WARNING [14] args(0):
- FCALL <> 5 [32] <= func:T [12] args(0):
- RETURN 5 [32]
- ENDO
- RETURN [0]
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement