result static method
Implementation
static Identifier result(ListOfIdentifierable listOfIdentifierable) {
final text = listOfIdentifierable.source;
switch (text) {
case NewLineEscapeSequenceKeyword.TEXT: return NewLineEscapeSequenceKeyword.constant();
case SpaceEscapeSequenceKeyword.TEXT: return SpaceEscapeSequenceKeyword.constant();
case EndCurlyBracketEscapeSequenceKeyword.TEXT: return EndCurlyBracketEscapeSequenceKeyword.constant();
case StartCurlyBracketEscapeSequenceKeyword.TEXT: return StartCurlyBracketEscapeSequenceKeyword.constant();
case EndParenthesisEscapeSequenceKeyword.TEXT: return EndParenthesisEscapeSequenceKeyword.constant();
case StartParenthesisEscapeSequenceKeyword.TEXT: return StartParenthesisEscapeSequenceKeyword.constant();
case EndAngleBracketEscapeSequenceKeyword.TEXT: return EndAngleBracketEscapeSequenceKeyword.constant();
case StartAngleBracketEscapeSequenceKeyword.TEXT: return StartAngleBracketEscapeSequenceKeyword.constant();
case EqualOperatorEscapeSequenceKeyword.TEXT: return EqualOperatorEscapeSequenceKeyword.constant();
case PeriodEscapeSequenceKeyword.TEXT: return PeriodEscapeSequenceKeyword.constant();
case SharpEscapeSequenceKeyword.TEXT: return SharpEscapeSequenceKeyword.constant();
case UnderbarEscapeSequenceKeyword.TEXT: return UnderbarEscapeSequenceKeyword.constant();
case AsteriskEscapeSequenceKeyword.TEXT: return AsteriskEscapeSequenceKeyword.constant();
case DefineText.TEXT: return DefineText.constant();
case DefineObject.TEXT: return DefineObject.constant();
case True.TEXT: return True.constant();
case False.TEXT: return False.constant();
case For.TEXT: return For.constant();
case Protect.TEXT: return Protect.constant();
case In.TEXT: return In.constant();
case Join.TEXT: return Join.constant();
case Camel.TEXT: return Camel.constant();
case Capital.TEXT: return Capital.constant();
case Constant.TEXT: return Constant.constant();
case Dot.TEXT: return Dot.constant();
case Header.TEXT: return Header.constant();
case No.TEXT: return No.constant();
case Not.TEXT: return Not.constant();
case Param.TEXT: return Param.constant();
case Pascal.TEXT: return Pascal.constant();
case Path.TEXT: return Path.constant();
case Sentence.TEXT: return Sentence.constant();
case Snake.TEXT: return Snake.constant();
case Swap.TEXT: return Swap.constant();
case _:
// list of identiferable は 通常 not empty
final startCharacter = text.split('').first;
final result = Startable.VALUE_SET.contains(startCharacter);
switch (result) {
case true:
return UserDefined(listOfIdentifierable);
case false:
// identifiable は - を使わないので マイナスのにはならない.
// identifiable は . を使わないので 少数にはならない.
// int.tryParse() で int の 10進数.
// 以上より整数の絶対値 0 以上の整数になる.
// radix が null の場合 10進数として parse のはず.
final tryParseResult = int.tryParse(text);
if (tryParseResult == null) return Anonymous(listOfIdentifierable);
return IntegerModulus(listOfIdentifierable);
}
}
}