normalize-numeric-reference ( n -- ch )


Vocabulary
html5

Inputs
nan object


Outputs
chan object


Definition


: normalize-numeric-reference ( n -- ch )
{
{
[ dup 0 = ]
[
drop
"null-character-reference" report-parse-error
65533
]
}
{
[ dup 1114111 > ]
[
drop
"character-reference-outside-unicode-range"
report-parse-error 65533
]
}
{
[ dup 55296 57343 between? ]
[
drop
"surrogate-character-reference"
report-parse-error 65533
]
}
[
dup noncharacter? [
"noncharacter-character-reference"
report-parse-error
] when dup {
[ 128 159 between? ]
[ 127 = ]
[ 13 = ]
[ 1 8 between? ]
[ 11 = ]
[ 14 31 between? ]
} 1||
[ "control-character-reference" report-parse-error ]
when dup numeric-reference-replacements at
[ nip ] when*
]
} cond ;