public AddressToken(string lexum, LexTokenType token) { Lexum = lexum; LexToken = token; ResultToken = StreetToken.UNKNOWN; switch (LexToken) { case LexTokenType.ADDRLEX_AMP: PossibleTokens = StreetToken.COLLASE; ResultToken = StreetToken.COLLASE; break; case LexTokenType.ADDRLEX_DASH: PossibleTokens = StreetToken.COLLASE; ResultToken = StreetToken.COLLASE; break; case LexTokenType.ADDRLEX_ONECHAR: PossibleTokens = StreetToken.PREDIR | StreetToken.SUFDIR; break; case LexTokenType.ADDRLEX_TWOCHAR: PossibleTokens = StreetToken.PREDIR | StreetToken.SUFDIR | StreetToken.STREETTYPE; break; case LexTokenType.ADDRLEX_FRACTION: PossibleTokens = StreetToken.HOUSE | StreetToken.UNITNUM; break; case LexTokenType.ADDRLEX_ALPHA: PossibleTokens = StreetToken.STREET | StreetToken.STREETTYPE | StreetToken.UNITTYPE; break; case LexTokenType.ADDRLEX_ALPHANUM: PossibleTokens = StreetToken.UNITNUM; break; case LexTokenType.ADDRLEX_NUM: PossibleTokens = StreetToken.HOUSE | StreetToken.STREET | StreetToken.UNITNUM; break; case LexTokenType.ADDRLEX_ORDINAL: PossibleTokens = StreetToken.STREET | StreetToken.HOUSE; break; default: throw new Exception("Internal error"); } }
public bool CouldBe(StreetToken token) { return(((int)PossibleTokens & (int)token) != 0); }