pub trait State {
fn is_final(&self) -> bool;
}
accept_state!(AndAcc);
accept_state!(AssignAcc);
accept_state!(GtAcc);
accept_state!(BinaryAcc);
accept_state!(ExclusiveOrAcc);
accept_state!(ColonAcc);
accept_state!(CommaAcc);
accept_state!(SlashAcc);
accept_state!(DecimalAcc);
accept_state!(DecimalDigitsAcc);
accept_state!(DecimalExponentAcc);
accept_state!(DecimalExponentSignedAcc);
accept_state!(DotPart);
accept_state!(String);
accept_state!(ExclamationAcc);
accept_state!(HELL);
accept_state!(HexAcc);
accept_state!(Identifier);
accept_state!(LBraceAcc);
accept_state!(LtAcc);
accept_state!(LineTerminator);
accept_state!(LParenAcc);
accept_state!(LBracketAcc);
accept_state!(MinusAcc);
accept_state!(MultiLineCommentAcc);
accept_state!(OctalAcc);
accept_state!(OrAcc);
accept_state!(ModAcc);
accept_state!(PlusAcc);
accept_state!(QuestionMarkAcc);
accept_state!(RBraceAcc);
accept_state!(RBracketAcc);
accept_state!(RParenAcc);
accept_state!(SemicolonAcc);
accept_state!(SingleLineCommentAcc);
accept_state!(Char);
accept_state!(MultiAcc);
accept_state!(TildeAcc);
accept_state!(WhiteSpace);
state!(Tilde);
state!(Semicolon);
state!(And);
state!(Assign);
state!(Gt);
state!(Binary);
state!(ExclusiveOr);
state!(Colon);
state!(Comma);
state!(Slash);
state!(LParen);
state!(RParen);
state!(LBrace);
state!(RBrace);
state!(LBracket);
state!(RBracket);
state!(Decimal);
state!(DecimalDigits);
state!(DecimalExponent);
state!(DecimalExponentSigned);
state!(Exclamation);
state!(Hex);
state!(InputElementDiv);
state!(Lt);
state!(Minus);
state!(MultiLineComment);
state!(MultiLineCommentStar);
state!(Octal);
state!(Or);
state!(Mod);
state!(QuestionMark);
state!(Plus);
state!(SawZero);
state!(SingleLineComment);
state!(Multi);