parse_Refer_To method
dynamic
parse_Refer_To()
Implementation
dynamic parse_Refer_To() {
var $$;
switch (_ch >= 0 && _ch <= 1114111
? 0
: _ch == -1
? 2
: 1) {
case 0:
case 2:
var ch0 = _ch, pos0 = _cursor, startPos0 = _startPos;
_startPos = _cursor;
while (true) {
switch (_getState(_transitions58)) {
case 0:
var startPos1 = _startPos;
_startPos = _cursor;
$$ = _parse_name_addr();
_startPos = startPos1;
break;
case 1:
case 3:
while (true) {
var startPos2 = _startPos;
_startPos = _cursor;
$$ = _parse_addr_spec();
_startPos = startPos2;
if (success) break;
var startPos3 = _startPos;
_startPos = _cursor;
$$ = _parse_name_addr();
_startPos = startPos3;
break;
}
break;
case 2:
$$ = null;
success = false;
break;
}
if (!success && _cursor > _testing) {
_failure(_expect81);
}
if (!success) break;
var seq = List<dynamic>.filled(2, null, growable: false)..[0] = $$;
var testing0 = _testing;
for (var reps = [];;) {
_testing = _cursor;
switch (_ch >= 0 && _ch <= 1114111
? 0
: _ch == -1
? 2
: 1) {
case 0:
case 2:
var ch1 = _ch, pos1 = _cursor, startPos4 = _startPos;
_startPos = _cursor;
while (true) {
$$ = _parse_SEMI();
if (!success) break;
var seq = List<dynamic>.filled(2, null, growable: false)
..[0] = $$;
$$ = _parse_generic_param();
if (!success) break;
seq[1] = $$;
$$ = seq;
break;
}
if (!success) {
_ch = ch1;
_cursor = pos1;
}
_startPos = startPos4;
break;
case 1:
$$ = null;
success = false;
break;
}
if (!success && _cursor > _testing) {
_failure(_expect30);
}
if (success) {
reps.add($$);
} else {
success = true;
_testing = testing0;
$$ = reps;
break;
}
}
if (!success) break;
seq[1] = $$;
$$ = seq;
if (success) {
final $1 = seq[0];
final $2 = seq[1];
final $start = startPos0;
var pos0 = _startPos, offset = $start;
{
///CODE_START
try {
$$ = NameAddrHeader(data.uri, data.display_name, data.params);
} catch (e) {
$$ = -1;
}
///CODE_END
}
}
break;
}
if (!success) {
_ch = ch0;
_cursor = pos0;
}
_startPos = startPos0;
break;
case 1:
$$ = null;
success = false;
break;
}
if (!success && _cursor > _testing) {
_failure(_expect81);
}
return $$;
}