Changed how functions are created
This commit is contained in:
@@ -54,6 +54,8 @@ namespace LXC::Lexer
|
||||
Else,
|
||||
Return,
|
||||
|
||||
FunctionDef,
|
||||
|
||||
// === User defined === //
|
||||
|
||||
StringLiteral = TokenClass::UserDefined,
|
||||
@@ -73,6 +75,9 @@ namespace LXC::Lexer
|
||||
CloseParen,
|
||||
OpenParen,
|
||||
|
||||
CloseCrocodile,
|
||||
OpenCrocodile,
|
||||
|
||||
Comma,
|
||||
|
||||
// === Misc === //
|
||||
|
||||
@@ -29,7 +29,8 @@ namespace LXC::Internal
|
||||
c == ',' || c == '[' ||
|
||||
c == ']' || c == '{' ||
|
||||
c == '}' || c == '(' ||
|
||||
c == ')';
|
||||
c == ')' || c == '<' ||
|
||||
c == '>';
|
||||
}
|
||||
|
||||
static const std::unordered_map<std::string_view, Lexer::Token::TokenType> symbolAndOpMap =
|
||||
@@ -52,17 +53,21 @@ namespace LXC::Internal
|
||||
{ "{", Lexer::Token::OpenBrace },
|
||||
|
||||
{ ")", Lexer::Token::CloseParen },
|
||||
{ "(", Lexer::Token::OpenParen }
|
||||
{ "(", Lexer::Token::OpenParen },
|
||||
|
||||
{ ">", Lexer::Token::CloseCrocodile },
|
||||
{ "<", Lexer::Token::OpenCrocodile }
|
||||
};
|
||||
|
||||
static const std::unordered_map<std::string_view, Lexer::Token::TokenType> keywords =
|
||||
{
|
||||
{ "for", Lexer::Token::For },
|
||||
{ "while", Lexer::Token::While },
|
||||
{ "if", Lexer::Token::If },
|
||||
{ "elif", Lexer::Token::ElseIf },
|
||||
{ "else", Lexer::Token::Else },
|
||||
{ "return", Lexer::Token::Return }
|
||||
{ "for", Lexer::Token::For },
|
||||
{ "while", Lexer::Token::While },
|
||||
{ "if", Lexer::Token::If },
|
||||
{ "elif", Lexer::Token::ElseIf },
|
||||
{ "else", Lexer::Token::Else },
|
||||
{ "return", Lexer::Token::Return },
|
||||
{ "func", Lexer::Token::FunctionDef },
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -75,6 +75,8 @@ namespace LXC::Lexer
|
||||
TOKEN_TYPE_CASE(Token::Else);
|
||||
TOKEN_TYPE_CASE(Token::Return);
|
||||
|
||||
TOKEN_TYPE_CASE(Token::FunctionDef);
|
||||
|
||||
TOKEN_TYPE_CASE(Token::StringLiteral);
|
||||
TOKEN_TYPE_CASE(Token::NumLiteral);
|
||||
TOKEN_TYPE_CASE(Token::Identifier);
|
||||
@@ -86,6 +88,8 @@ namespace LXC::Lexer
|
||||
TOKEN_TYPE_CASE(Token::OpenBrace);
|
||||
TOKEN_TYPE_CASE(Token::CloseParen);
|
||||
TOKEN_TYPE_CASE(Token::OpenParen);
|
||||
TOKEN_TYPE_CASE(Token::CloseCrocodile);
|
||||
TOKEN_TYPE_CASE(Token::OpenCrocodile);
|
||||
TOKEN_TYPE_CASE(Token::Comma);
|
||||
|
||||
TOKEN_TYPE_CASE(Token::End_of_file);
|
||||
|
||||
Reference in New Issue
Block a user