| 666 |
## $self->{nc} is intentionally left as is |
## $self->{nc} is intentionally left as is |
| 667 |
redo A; |
redo A; |
| 668 |
} |
} |
| 669 |
} else { |
} elsif (not $self->{is_xml} or $is_space->{$self->{nc}}) { |
| 670 |
|
|
| 671 |
$self->{parse_error}->(level => $self->{level}->{must}, type => 'bare stago', |
$self->{parse_error}->(level => $self->{level}->{must}, type => 'bare stago', |
| 672 |
line => $self->{line_prev}, |
line => $self->{line_prev}, |
| 681 |
}); |
}); |
| 682 |
|
|
| 683 |
redo A; |
redo A; |
| 684 |
|
} else { |
| 685 |
|
## XML5: "<:" is a parse error. |
| 686 |
|
|
| 687 |
|
$self->{ct} = {type => START_TAG_TOKEN, |
| 688 |
|
tag_name => chr ($self->{nc}), |
| 689 |
|
line => $self->{line_prev}, |
| 690 |
|
column => $self->{column_prev}}; |
| 691 |
|
$self->{state} = TAG_NAME_STATE; |
| 692 |
|
|
| 693 |
|
if ($self->{char_buffer_pos} < length $self->{char_buffer}) { |
| 694 |
|
$self->{line_prev} = $self->{line}; |
| 695 |
|
$self->{column_prev} = $self->{column}; |
| 696 |
|
$self->{column}++; |
| 697 |
|
$self->{nc} |
| 698 |
|
= ord substr ($self->{char_buffer}, $self->{char_buffer_pos}++, 1); |
| 699 |
|
} else { |
| 700 |
|
$self->{set_nc}->($self); |
| 701 |
|
} |
| 702 |
|
|
| 703 |
|
redo A; |
| 704 |
} |
} |
| 705 |
} else { |
} else { |
| 706 |
die "$0: $self->{content_model} in tag open"; |
die "$0: $self->{content_model} in tag open"; |