Add multicharacter tokens to simple lexer

This commit is contained in:
Jan
2021-11-03 22:02:04 +01:00
parent ab7b516918
commit c5d7d71a51
11 changed files with 181 additions and 11 deletions

View File

@ -27,6 +27,13 @@ SimpleParserValue SimpleParserValue::Character(const TokenPos pos, const char c)
return pv;
}
SimpleParserValue SimpleParserValue::MultiCharacter(const TokenPos pos, const int multiCharacterSequenceId)
{
SimpleParserValue pv(pos, SimpleParserValueType::MULTI_CHARACTER);
pv.m_value.multi_character_sequence_id = multiCharacterSequenceId;
return pv;
}
SimpleParserValue SimpleParserValue::Integer(const TokenPos pos, const int value)
{
SimpleParserValue pv(pos, SimpleParserValueType::INTEGER);
@ -116,6 +123,12 @@ char SimpleParserValue::CharacterValue() const
return m_value.char_value;
}
int SimpleParserValue::MultiCharacterValue() const
{
assert(m_type == SimpleParserValueType::MULTI_CHARACTER);
return m_value.multi_character_sequence_id;
}
int SimpleParserValue::IntegerValue() const
{
assert(m_type == SimpleParserValueType::INTEGER);