diff --git a/src/Expression.h b/src/Expression.h index 4fa3afe..1e6c337 100644 --- a/src/Expression.h +++ b/src/Expression.h @@ -10,6 +10,16 @@ class StatementExpression; using namespace std; +enum class ExpressionKind { + LITERAL, + GROUPING, + BINARY, + IF_ELSE, + VAR, + CALL, + INVALID +}; + // // Expression class Expression { diff --git a/src/Statement.h b/src/Statement.h index 249486d..c92bdf4 100644 --- a/src/Statement.h +++ b/src/Statement.h @@ -16,6 +16,16 @@ class StatementInvalid; using namespace std; +enum class StatementKind { + FUNCTION_DECLARATION, + VAR_DECLARATION, + BLOCK, + RETURN, + EXPRESSION, + META_EXTERN_FUNCTION, + INVALID +}; + // // Statement class Statement { diff --git a/src/Token.h b/src/Token.h index 3f0e6ad..c50c91f 100644 --- a/src/Token.h +++ b/src/Token.h @@ -7,6 +7,47 @@ using namespace std; +enum class TokenKind { + PLUS, + MINUS, + STAR, + SLASH, + PERCENT, + + EQUAL, + NOT_EQUAL, + LESS, + LESS_EQUAL, + GREATER, + GREATER_EQUAL, + + LEFT_PAREN, + RIGHT_PAREN, + COMMA, + COLON, + SEMICOLON, + QUESTION, + QUESTION_QUESTION, + LEFT_ARROW, + RIGHT_ARROW, + + FUNCTION, + RETURN, + + BOOL, + INTEGER, + REAL, + IDENTIFIER, + TYPE, + + M_EXTERN, + + NEW_LINE, + END, + + INVALID +}; + class Token { private: TokenKind kind; diff --git a/src/Types.h b/src/Types.h index 6291e2f..912756b 100644 --- a/src/Types.h +++ b/src/Types.h @@ -1,67 +1,6 @@ #ifndef TYPES_H #define TYPES_H -enum class TokenKind { - PLUS, - MINUS, - STAR, - SLASH, - PERCENT, - - EQUAL, - NOT_EQUAL, - LESS, - LESS_EQUAL, - GREATER, - GREATER_EQUAL, - - LEFT_PAREN, - RIGHT_PAREN, - COMMA, - COLON, - SEMICOLON, - QUESTION, - QUESTION_QUESTION, - LEFT_ARROW, - RIGHT_ARROW, - - FUNCTION, - RETURN, - - BOOL, - INTEGER, - REAL, - IDENTIFIER, - TYPE, - - M_EXTERN, - - NEW_LINE, - END, - - INVALID -}; - -enum class ExpressionKind { - LITERAL, - GROUPING, - BINARY, - IF_ELSE, - VAR, - CALL, - INVALID -}; - -enum class StatementKind { - FUNCTION_DECLARATION, - VAR_DECLARATION, - BLOCK, - RETURN, - EXPRESSION, - META_EXTERN_FUNCTION, - INVALID -}; - enum class ValueType { NONE, BOOL,