mirror of
https://codeberg.org/ProgramSnail/lang_2023.git
synced 2025-12-06 06:58:45 +00:00
fixes , modifier enum refacing, type visitor part
This commit is contained in:
parent
b686fe00fb
commit
c4045e292b
9 changed files with 147 additions and 132 deletions
|
|
@ -296,8 +296,7 @@ struct NamespaceSources {
|
|||
struct Namespace {
|
||||
BaseNode base;
|
||||
|
||||
enum Modifier { Const, Var };
|
||||
std::optional<Modifier> modifier; // modifier => variable namespace
|
||||
std::optional<utils::IsConstModifier> modifier; // modifier => variable namespace
|
||||
TypeIdentifier type;
|
||||
NamespaceSources scope;
|
||||
|
||||
|
|
@ -318,7 +317,7 @@ struct ImportStatement {
|
|||
struct AliasDefinitionStatement {
|
||||
BaseNode base;
|
||||
|
||||
enum {Alias, Type, Let} modifier;
|
||||
utils::AliasModifier modifier;
|
||||
TypeIdentifier type;
|
||||
std::vector<AbstractTypeIdentifier> parameters;
|
||||
std::unique_ptr<TypeExpression> value;
|
||||
|
|
@ -329,8 +328,8 @@ struct AliasDefinitionStatement {
|
|||
struct VariableDefinitionStatement {
|
||||
BaseNode base;
|
||||
|
||||
enum { Var, Const } modifier;
|
||||
enum { Move, Assign } assignment_modifier;
|
||||
utils::IsConstModifier modifier;
|
||||
utils::AssignmentModifier assignment_modifier;
|
||||
AnyName name;
|
||||
SuperExpression value;
|
||||
};
|
||||
|
|
@ -358,7 +357,7 @@ struct FunctionDefinitionStatement {
|
|||
struct TypeDefinitionStatement {
|
||||
BaseNode base;
|
||||
|
||||
enum { Struct, Class } modifier;
|
||||
utils::ClassModifier modifier;
|
||||
std::unique_ptr<TypeDefinition> definition;
|
||||
AnyType value;
|
||||
|
||||
|
|
@ -368,7 +367,7 @@ struct TypeDefinitionStatement {
|
|||
struct AbstractTypeDefinitionStatement {
|
||||
BaseNode base;
|
||||
|
||||
enum { Basic, Abstract } modifier;
|
||||
utils::AbstractTypeModifier modifier;
|
||||
std::unique_ptr<AnnotatedType> type;
|
||||
|
||||
utils::IdType type_graph_id_;
|
||||
|
|
@ -389,7 +388,7 @@ struct TypeclassDefinitionStatement {
|
|||
struct FunctionDefinition {
|
||||
BaseNode base;
|
||||
|
||||
enum { Operator, Function } modifier;
|
||||
utils::FunctionTypeModifier modifier;
|
||||
ExtendedName name;
|
||||
std::vector<ExtendedName> arguments;
|
||||
};
|
||||
|
|
@ -514,7 +513,7 @@ struct UnaryOperatorExpression {
|
|||
struct ReferenceExpression {
|
||||
BaseNode base;
|
||||
|
||||
std::vector<utils::ReferenceType> references;
|
||||
std::vector<utils::ReferenceModifier> references;
|
||||
std::unique_ptr<ScopedStatement> expression;
|
||||
};
|
||||
|
||||
|
|
@ -558,9 +557,8 @@ struct ReturnExpression {
|
|||
struct TypeConstructorParameter {
|
||||
BaseNode base;
|
||||
|
||||
enum AssignmentModifier { Move, Assign };
|
||||
std::optional<ExtendedName> name;
|
||||
std::optional<AssignmentModifier> asignment_modifier;
|
||||
std::optional<utils::AssignmentModifier> asignment_modifier;
|
||||
SubExpression value;
|
||||
};
|
||||
|
||||
|
|
@ -663,7 +661,7 @@ struct TypeExpression {
|
|||
struct ExtendedScopedAnyType {
|
||||
BaseNode base;
|
||||
|
||||
std::vector<utils::ReferenceType> references;
|
||||
std::vector<utils::ReferenceModifier> references;
|
||||
AnyType type;
|
||||
};
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue