# WARNING: This file was generated from bigbed-parser.rl using ragel. Do not edit!
type BigBedData <: IntervalStream{BEDMetadata}
stream::BufferedInputStream
header::BigBedHeader
zoom_headers::Vector{BigBedZoomHeader}
autosql::AbstractString
summary::BigBedTotalSummary
btree_header::BigBedBTreeHeader
rtree_header::BigBedRTreeHeader
data_count::UInt32

# preallocated space for reading and searching the B-tree
btree_internal_nodes::Vector{BigBedBTreeInternalNode}
btree_leaf_nodes::Vector{BigBedBTreeLeafNode}
key::Vector{UInt8}
node_keys::Vector{Vector{UInt8}}
uncompressed_data::Vector{UInt8}
end


	# Parser for data blocks in a BigBed file. This is very similar
	# to the BED parser in bed.rl, with the following exceptions:
	#
	#    * BigBed has binary chrom_index, start, and end, insteado of ASCII
#      chromosome name, start, end.
#    * BigBed entries are null ('\0') terminated, rather than newline separated.
#
const _bigbedparser_start  = 39
const _bigbedparser_first_final  = 39
const _bigbedparser_error  = 0
const _bigbedparser_en_main  = 39
const __bigbedparser_nfa_targs = Int8[ 0, 0 ,  ]
const __bigbedparser_nfa_offsets = Int8[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ,  ]
const __bigbedparser_nfa_push_actions = Int8[ 0, 0 ,  ]
const __bigbedparser_nfa_pop_trans = Int8[ 0, 0 ,  ]
typealias StringFieldVector Vector{StringField}
typealias NullableStringFieldVector Nullable{StringFieldVector}
typealias NullableStringField Nullable{StringField}

type BigBedDataParser <: AbstractParser
state::Ragel.State

# intermediate values used during parsing
chrom_id::UInt32
red::Float32
green::Float32
blue::Float32
block_size_idx::Int
block_first_idx::Int
seq_names::Nullable{StringFieldVector}
assumed_seqname::Nullable{StringField}

function BigBedDataParser(input::BufferedInputStream;
seq_names::NullableStringFieldVector=NullableStringFieldVector(),
assumed_seqname::NullableStringField=NullableStringField())

begin
cs = convert( Int , _bigbedparser_start );

end
return new(Ragel.State(cs, input), 0, 0.0, 0.0, 0.0, 1, 1, seq_names, assumed_seqname)
end
end


Ragel.@generate_read!_function("_bigbedparser", BigBedDataParser, BEDInterval,
begin
begin
if ( p == pe  )
@goto _test_eof

end
if ( cs  == 39 )
@goto st_case_39
elseif ( cs  == 1 )
@goto st_case_1
elseif ( cs  == 2 )
@goto st_case_2
elseif ( cs  == 3 )
@goto st_case_3
elseif ( cs  == 4 )
@goto st_case_4
elseif ( cs  == 5 )
@goto st_case_5
elseif ( cs  == 6 )
@goto st_case_6
elseif ( cs  == 7 )
@goto st_case_7
elseif ( cs  == 8 )
@goto st_case_8
elseif ( cs  == 9 )
@goto st_case_9
elseif ( cs  == 10 )
@goto st_case_10
elseif ( cs  == 11 )
@goto st_case_11
elseif ( cs  == 12 )
@goto st_case_12
elseif ( cs  == 40 )
@goto st_case_40
elseif ( cs  == 0 )
@goto st_case_0
elseif ( cs  == 13 )
@goto st_case_13
elseif ( cs  == 14 )
@goto st_case_14
elseif ( cs  == 15 )
@goto st_case_15
elseif ( cs  == 16 )
@goto st_case_16
elseif ( cs  == 17 )
@goto st_case_17
elseif ( cs  == 18 )
@goto st_case_18
elseif ( cs  == 19 )
@goto st_case_19
elseif ( cs  == 20 )
@goto st_case_20
elseif ( cs  == 21 )
@goto st_case_21
elseif ( cs  == 22 )
@goto st_case_22
elseif ( cs  == 23 )
@goto st_case_23
elseif ( cs  == 24 )
@goto st_case_24
elseif ( cs  == 25 )
@goto st_case_25
elseif ( cs  == 26 )
@goto st_case_26
elseif ( cs  == 27 )
@goto st_case_27
elseif ( cs  == 28 )
@goto st_case_28
elseif ( cs  == 29 )
@goto st_case_29
elseif ( cs  == 30 )
@goto st_case_30
elseif ( cs  == 31 )
@goto st_case_31
elseif ( cs  == 32 )
@goto st_case_32
elseif ( cs  == 33 )
@goto st_case_33
elseif ( cs  == 34 )
@goto st_case_34
elseif ( cs  == 35 )
@goto st_case_35
elseif ( cs  == 36 )
@goto st_case_36
elseif ( cs  == 37 )
@goto st_case_37
elseif ( cs  == 38 )
@goto st_case_38
end
@goto st_out
@label st_case_39
begin
@goto ctr64

end
@label ctr64
begin
Ragel.@anchor!
end
@goto st1
@label ctr65
begin
input.block_size_idx = 1
input.block_first_idx = 1

# // fbreak causes will cause the pushmark action for the next seqname
# // to be skipped, so we do it here
Ragel.@anchor!
Ragel.@yield 1
end
begin
Ragel.@anchor!
end
@goto st1
@label st1
p+= 1;
if ( p == pe  )
@goto _test_eof1

end
@label st_case_1
begin
@goto st2

end
@label st2
p+= 1;
if ( p == pe  )
@goto _test_eof2

end
@label st_case_2
begin
@goto st3

end
@label st3
p+= 1;
if ( p == pe  )
@goto _test_eof3

end
@label st_case_3
begin
@goto st4

end
@label st4
p+= 1;
if ( p == pe  )
@goto _test_eof4

end
@label st_case_4
begin
@goto ctr3

end
@label ctr3
begin
input.chrom_id = Ragel.@load_from_anchor!(UInt32)
if !isnull(input.seq_names)
output.seqname = copy(get(input.seq_names)[input.chrom_id + 1])
else
output.seqname = copy(get(input.assumed_seqname))
end
output.metadata.used_fields = 0
end
begin
Ragel.@anchor!
end
@goto st5
@label st5
p+= 1;
if ( p == pe  )
@goto _test_eof5

end
@label st_case_5
begin
@goto st6

end
@label st6
p+= 1;
if ( p == pe  )
@goto _test_eof6

end
@label st_case_6
begin
@goto st7

end
@label st7
p+= 1;
if ( p == pe  )
@goto _test_eof7

end
@label st_case_7
begin
@goto st8

end
@label st8
p+= 1;
if ( p == pe  )
@goto _test_eof8

end
@label st_case_8
begin
@goto ctr7

end
@label ctr7
begin
output.first = 1 + Ragel.@load_from_anchor!(UInt32)
end
begin
Ragel.@anchor!
end
@goto st9
@label st9
p+= 1;
if ( p == pe  )
@goto _test_eof9

end
@label st_case_9
begin
@goto st10

end
@label st10
p+= 1;
if ( p == pe  )
@goto _test_eof10

end
@label st_case_10
begin
@goto st11

end
@label st11
p+= 1;
if ( p == pe  )
@goto _test_eof11

end
@label st_case_11
begin
@goto st12

end
@label st12
p+= 1;
if ( p == pe  )
@goto _test_eof12

end
@label st_case_12
if ( (data[1+(p )])== 0  )
begin
@goto ctr11

end

end
if ( 32 <= (data[1+(p )])&& (data[1+(p )])<= 126  )
begin
@goto ctr12

end

end
begin
@goto st0

end
@label ctr11
begin
output.last = Ragel.@load_from_anchor!(UInt32)
end
@goto st40
@label ctr14
begin
Ragel.@copy_from_anchor!(output.metadata.name)
end
begin
output.metadata.used_fields += 1
end
@goto st40
@label ctr18
begin
output.metadata.score = Ragel.@int64_from_anchor!
end
begin
output.metadata.used_fields += 1
end
@goto st40
@label ctr22
begin
output.metadata.used_fields += 1
end
@goto st40
@label ctr25
begin
output.metadata.thick_first = 1 + Ragel.@int64_from_anchor!
end
begin
output.metadata.used_fields += 1
end
@goto st40
@label ctr29
begin
output.metadata.thick_last = Ragel.@int64_from_anchor!
end
begin
output.metadata.used_fields += 1
end
@goto st40
@label ctr33
begin
input.red = input.green = input.blue = (Ragel.@int64_from_anchor!) / 255.0
end
begin
output.metadata.item_rgb = RGB{Float32}(input.red, input.green, input.blue)
end
begin
output.metadata.used_fields += 1
end
@goto st40
@label ctr48
begin
input.blue = (Ragel.@int64_from_anchor!) / 255.0
end
begin
output.metadata.item_rgb = RGB{Float32}(input.red, input.green, input.blue)
end
begin
output.metadata.used_fields += 1
end
@goto st40
@label ctr51
begin
output.metadata.block_count = Ragel.@int64_from_anchor!

if (output.metadata.block_count > length(output.metadata.block_sizes))
resize!(output.metadata.block_sizes, output.metadata.block_count)
end

if (output.metadata.block_count > length(output.metadata.block_firsts))
resize!(output.metadata.block_firsts, output.metadata.block_count)
end
end
begin
output.metadata.used_fields += 1
end
@goto st40
@label ctr55
begin
if input.block_size_idx > length(output.metadata.block_sizes)
error("More size blocks encountered than BED block count field suggested.")
end
output.metadata.block_sizes[input.block_size_idx] = Ragel.@int64_from_anchor!
input.block_size_idx += 1
end
begin
output.metadata.used_fields += 1
end
@goto st40
@label ctr60
begin
if input.block_first_idx > length(output.metadata.block_firsts)
error("More start blocks encountered than BED block count field suggested.")
end
output.metadata.block_firsts[input.block_first_idx] = 1 + Ragel.@int64_from_anchor!
input.block_first_idx += 1
end
begin
output.metadata.used_fields += 1
end
@goto st40
@label st40
p+= 1;
if ( p == pe  )
@goto _test_eof40

end
@label st_case_40
begin
@goto ctr65

end
@label st_case_0
@label st0
cs = 0;
@goto _out
@label ctr12
begin
output.last = Ragel.@load_from_anchor!(UInt32)
end
begin
Ragel.@anchor!
end
@goto st13
@label st13
p+= 1;
if ( p == pe  )
@goto _test_eof13

end
@label st_case_13
if ( (data[1+(p )]) == 0 )
begin
@goto ctr14

end
elseif ( (data[1+(p )]) == 9 )
begin
@goto ctr15

end
end
if ( 32 <= (data[1+(p )])&& (data[1+(p )])<= 126  )
begin
@goto st13

end

end
begin
@goto st0

end
@label ctr15
begin
Ragel.@copy_from_anchor!(output.metadata.name)
end
begin
output.metadata.used_fields += 1
end
@goto st14
@label st14
p+= 1;
if ( p == pe  )
@goto _test_eof14

end
@label st_case_14
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto ctr17

end

end
begin
@goto st0

end
@label ctr17
begin
Ragel.@anchor!
end
@goto st15
@label st15
p+= 1;
if ( p == pe  )
@goto _test_eof15

end
@label st_case_15
if ( (data[1+(p )]) == 0 )
begin
@goto ctr18

end
elseif ( (data[1+(p )]) == 9 )
begin
@goto ctr19

end
end
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto st15

end

end
begin
@goto st0

end
@label ctr19
begin
output.metadata.score = Ragel.@int64_from_anchor!
end
begin
output.metadata.used_fields += 1
end
@goto st16
@label st16
p+= 1;
if ( p == pe  )
@goto _test_eof16

end
@label st_case_16
if ( (data[1+(p )]) == 43 )
begin
@goto ctr21

end
elseif ( (data[1+(p )]) == 63 )
begin
@goto ctr21

end
end
if ( 45 <= (data[1+(p )])&& (data[1+(p )])<= 46  )
begin
@goto ctr21

end

end
begin
@goto st0

end
@label ctr21
begin
output.strand = convert(Strand, (Ragel.@char))
end
@goto st17
@label st17
p+= 1;
if ( p == pe  )
@goto _test_eof17

end
@label st_case_17
if ( (data[1+(p )]) == 0 )
begin
@goto ctr22

end
elseif ( (data[1+(p )]) == 9 )
begin
@goto ctr23

end
end
begin
@goto st0

end
@label ctr23
begin
output.metadata.used_fields += 1
end
@goto st18
@label st18
p+= 1;
if ( p == pe  )
@goto _test_eof18

end
@label st_case_18
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto ctr24

end

end
begin
@goto st0

end
@label ctr24
begin
Ragel.@anchor!
end
@goto st19
@label st19
p+= 1;
if ( p == pe  )
@goto _test_eof19

end
@label st_case_19
if ( (data[1+(p )]) == 0 )
begin
@goto ctr25

end
elseif ( (data[1+(p )]) == 9 )
begin
@goto ctr26

end
end
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto st19

end

end
begin
@goto st0

end
@label ctr26
begin
output.metadata.thick_first = 1 + Ragel.@int64_from_anchor!
end
begin
output.metadata.used_fields += 1
end
@goto st20
@label st20
p+= 1;
if ( p == pe  )
@goto _test_eof20

end
@label st_case_20
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto ctr28

end

end
begin
@goto st0

end
@label ctr28
begin
Ragel.@anchor!
end
@goto st21
@label st21
p+= 1;
if ( p == pe  )
@goto _test_eof21

end
@label st_case_21
if ( (data[1+(p )]) == 0 )
begin
@goto ctr29

end
elseif ( (data[1+(p )]) == 9 )
begin
@goto ctr30

end
end
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto st21

end

end
begin
@goto st0

end
@label ctr30
begin
output.metadata.thick_last = Ragel.@int64_from_anchor!
end
begin
output.metadata.used_fields += 1
end
@goto st22
@label st22
p+= 1;
if ( p == pe  )
@goto _test_eof22

end
@label st_case_22
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto ctr32

end

end
begin
@goto st0

end
@label ctr32
begin
Ragel.@anchor!
end
@goto st23
@label st23
p+= 1;
if ( p == pe  )
@goto _test_eof23

end
@label st_case_23
if ( (data[1+(p )]) == 0 )
begin
@goto ctr33

end
elseif ( (data[1+(p )]) == 9 )
begin
@goto ctr34

end
elseif ( (data[1+(p )]) == 11 )
begin
@goto ctr35

end
elseif ( (data[1+(p )]) == 32 )
begin
@goto ctr35

end
elseif ( (data[1+(p )]) == 44 )
begin
@goto ctr36

end
end
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto st23

end

end
begin
@goto st0

end
@label ctr34
begin
input.red = input.green = input.blue = (Ragel.@int64_from_anchor!) / 255.0
end
begin
output.metadata.item_rgb = RGB{Float32}(input.red, input.green, input.blue)
end
begin
output.metadata.used_fields += 1
end
@goto st24
@label st24
p+= 1;
if ( p == pe  )
@goto _test_eof24

end
@label st_case_24
if ( (data[1+(p )]) == 9 )
begin
@goto st25

end
elseif ( (data[1+(p )]) == 11 )
begin
@goto st25

end
elseif ( (data[1+(p )]) == 32 )
begin
@goto st25

end
elseif ( (data[1+(p )]) == 44 )
begin
@goto st26

end
end
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto ctr40

end

end
begin
@goto st0

end
@label ctr35
begin
input.red = input.green = input.blue = (Ragel.@int64_from_anchor!) / 255.0
end
@goto st25
@label st25
p+= 1;
if ( p == pe  )
@goto _test_eof25

end
@label st_case_25
if ( (data[1+(p )]) == 9 )
begin
@goto st25

end
elseif ( (data[1+(p )]) == 11 )
begin
@goto st25

end
elseif ( (data[1+(p )]) == 32 )
begin
@goto st25

end
elseif ( (data[1+(p )]) == 44 )
begin
@goto st26

end
end
begin
@goto st0

end
@label ctr36
begin
input.red = input.green = input.blue = (Ragel.@int64_from_anchor!) / 255.0
end
@goto st26
@label st26
p+= 1;
if ( p == pe  )
@goto _test_eof26

end
@label st_case_26
if ( (data[1+(p )]) == 9 )
begin
@goto st26

end
elseif ( (data[1+(p )]) == 11 )
begin
@goto st26

end
elseif ( (data[1+(p )]) == 32 )
begin
@goto st26

end
end
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto ctr41

end

end
begin
@goto st0

end
@label ctr41
begin
Ragel.@anchor!
end
@goto st27
@label st27
p+= 1;
if ( p == pe  )
@goto _test_eof27

end
@label st_case_27
if ( (data[1+(p )]) == 9 )
begin
@goto ctr42

end
elseif ( (data[1+(p )]) == 11 )
begin
@goto ctr42

end
elseif ( (data[1+(p )]) == 32 )
begin
@goto ctr42

end
elseif ( (data[1+(p )]) == 44 )
begin
@goto ctr43

end
end
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto st27

end

end
begin
@goto st0

end
@label ctr42
begin
input.green = (Ragel.@int64_from_anchor!) / 255.0
end
@goto st28
@label st28
p+= 1;
if ( p == pe  )
@goto _test_eof28

end
@label st_case_28
if ( (data[1+(p )]) == 9 )
begin
@goto st28

end
elseif ( (data[1+(p )]) == 11 )
begin
@goto st28

end
elseif ( (data[1+(p )]) == 32 )
begin
@goto st28

end
elseif ( (data[1+(p )]) == 44 )
begin
@goto st29

end
end
begin
@goto st0

end
@label ctr43
begin
input.green = (Ragel.@int64_from_anchor!) / 255.0
end
@goto st29
@label st29
p+= 1;
if ( p == pe  )
@goto _test_eof29

end
@label st_case_29
if ( (data[1+(p )]) == 9 )
begin
@goto st29

end
elseif ( (data[1+(p )]) == 11 )
begin
@goto st29

end
elseif ( (data[1+(p )]) == 32 )
begin
@goto st29

end
end
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto ctr47

end

end
begin
@goto st0

end
@label ctr47
begin
Ragel.@anchor!
end
@goto st30
@label st30
p+= 1;
if ( p == pe  )
@goto _test_eof30

end
@label st_case_30
if ( (data[1+(p )]) == 0 )
begin
@goto ctr48

end
elseif ( (data[1+(p )]) == 9 )
begin
@goto ctr49

end
end
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto st30

end

end
begin
@goto st0

end
@label ctr49
begin
input.blue = (Ragel.@int64_from_anchor!) / 255.0
end
begin
output.metadata.item_rgb = RGB{Float32}(input.red, input.green, input.blue)
end
begin
output.metadata.used_fields += 1
end
@goto st31
@label st31
p+= 1;
if ( p == pe  )
@goto _test_eof31

end
@label st_case_31
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto ctr40

end

end
begin
@goto st0

end
@label ctr40
begin
Ragel.@anchor!
end
@goto st32
@label st32
p+= 1;
if ( p == pe  )
@goto _test_eof32

end
@label st_case_32
if ( (data[1+(p )]) == 0 )
begin
@goto ctr51

end
elseif ( (data[1+(p )]) == 9 )
begin
@goto ctr52

end
end
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto st32

end

end
begin
@goto st0

end
@label ctr52
begin
output.metadata.block_count = Ragel.@int64_from_anchor!

if (output.metadata.block_count > length(output.metadata.block_sizes))
resize!(output.metadata.block_sizes, output.metadata.block_count)
end

if (output.metadata.block_count > length(output.metadata.block_firsts))
resize!(output.metadata.block_firsts, output.metadata.block_count)
end
end
begin
output.metadata.used_fields += 1
end
@goto st33
@label st33
p+= 1;
if ( p == pe  )
@goto _test_eof33

end
@label st_case_33
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto ctr54

end

end
begin
@goto st0

end
@label ctr54
begin
Ragel.@anchor!
end
@goto st34
@label st34
p+= 1;
if ( p == pe  )
@goto _test_eof34

end
@label st_case_34
if ( (data[1+(p )]) == 0 )
begin
@goto ctr55

end
elseif ( (data[1+(p )]) == 9 )
begin
@goto ctr56

end
elseif ( (data[1+(p )]) == 44 )
begin
@goto ctr57

end
end
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto st34

end

end
begin
@goto st0

end
@label ctr63
begin
output.metadata.used_fields += 1
end
@goto st35
@label ctr56
begin
if input.block_size_idx > length(output.metadata.block_sizes)
error("More size blocks encountered than BED block count field suggested.")
end
output.metadata.block_sizes[input.block_size_idx] = Ragel.@int64_from_anchor!
input.block_size_idx += 1
end
begin
output.metadata.used_fields += 1
end
@goto st35
@label st35
p+= 1;
if ( p == pe  )
@goto _test_eof35

end
@label st_case_35
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto ctr59

end

end
begin
@goto st0

end
@label ctr59
begin
Ragel.@anchor!
end
@goto st36
@label st36
p+= 1;
if ( p == pe  )
@goto _test_eof36

end
@label st_case_36
if ( (data[1+(p )]) == 0 )
begin
@goto ctr60

end
elseif ( (data[1+(p )]) == 44 )
begin
@goto ctr61

end
end
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto st36

end

end
begin
@goto st0

end
@label ctr61
begin
if input.block_first_idx > length(output.metadata.block_firsts)
error("More start blocks encountered than BED block count field suggested.")
end
output.metadata.block_firsts[input.block_first_idx] = 1 + Ragel.@int64_from_anchor!
input.block_first_idx += 1
end
@goto st37
@label st37
p+= 1;
if ( p == pe  )
@goto _test_eof37

end
@label st_case_37
if ( (data[1+(p )])== 0  )
begin
@goto ctr22

end

end
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto ctr59

end

end
begin
@goto st0

end
@label ctr57
begin
if input.block_size_idx > length(output.metadata.block_sizes)
error("More size blocks encountered than BED block count field suggested.")
end
output.metadata.block_sizes[input.block_size_idx] = Ragel.@int64_from_anchor!
input.block_size_idx += 1
end
@goto st38
@label st38
p+= 1;
if ( p == pe  )
@goto _test_eof38

end
@label st_case_38
if ( (data[1+(p )]) == 0 )
begin
@goto ctr22

end
elseif ( (data[1+(p )]) == 9 )
begin
@goto ctr63

end
end
if ( 48 <= (data[1+(p )])&& (data[1+(p )])<= 57  )
begin
@goto ctr54

end

end
begin
@goto st0

end
@label st_out
@label _test_eof1
cs = 1;
@goto _test_eof
@label _test_eof2
cs = 2;
@goto _test_eof
@label _test_eof3
cs = 3;
@goto _test_eof
@label _test_eof4
cs = 4;
@goto _test_eof
@label _test_eof5
cs = 5;
@goto _test_eof
@label _test_eof6
cs = 6;
@goto _test_eof
@label _test_eof7
cs = 7;
@goto _test_eof
@label _test_eof8
cs = 8;
@goto _test_eof
@label _test_eof9
cs = 9;
@goto _test_eof
@label _test_eof10
cs = 10;
@goto _test_eof
@label _test_eof11
cs = 11;
@goto _test_eof
@label _test_eof12
cs = 12;
@goto _test_eof
@label _test_eof40
cs = 40;
@goto _test_eof
@label _test_eof13
cs = 13;
@goto _test_eof
@label _test_eof14
cs = 14;
@goto _test_eof
@label _test_eof15
cs = 15;
@goto _test_eof
@label _test_eof16
cs = 16;
@goto _test_eof
@label _test_eof17
cs = 17;
@goto _test_eof
@label _test_eof18
cs = 18;
@goto _test_eof
@label _test_eof19
cs = 19;
@goto _test_eof
@label _test_eof20
cs = 20;
@goto _test_eof
@label _test_eof21
cs = 21;
@goto _test_eof
@label _test_eof22
cs = 22;
@goto _test_eof
@label _test_eof23
cs = 23;
@goto _test_eof
@label _test_eof24
cs = 24;
@goto _test_eof
@label _test_eof25
cs = 25;
@goto _test_eof
@label _test_eof26
cs = 26;
@goto _test_eof
@label _test_eof27
cs = 27;
@goto _test_eof
@label _test_eof28
cs = 28;
@goto _test_eof
@label _test_eof29
cs = 29;
@goto _test_eof
@label _test_eof30
cs = 30;
@goto _test_eof
@label _test_eof31
cs = 31;
@goto _test_eof
@label _test_eof32
cs = 32;
@goto _test_eof
@label _test_eof33
cs = 33;
@goto _test_eof
@label _test_eof34
cs = 34;
@goto _test_eof
@label _test_eof35
cs = 35;
@goto _test_eof
@label _test_eof36
cs = 36;
@goto _test_eof
@label _test_eof37
cs = 37;
@goto _test_eof
@label _test_eof38
cs = 38;
@goto _test_eof
@label _test_eof
begin

end
if ( p == eof  )
begin
if ( cs  == 40 )
begin
input.block_size_idx = 1
input.block_first_idx = 1

# // fbreak causes will cause the pushmark action for the next seqname
# // to be skipped, so we do it here
Ragel.@anchor!
Ragel.@yield 0
end

break;
end

end

end
@label _out
begin

end

end
end)
