mirror of
https://codeberg.org/ProgramSnail/lang_2023.git
synced 2025-12-08 16:08: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
|
|
@ -95,9 +95,9 @@ void BuildVisitor::Visit(Namespace* node) {
|
|||
if (child_count > 3) { // "namespace", ["var"/"const",] type, scope
|
||||
std::string modifier = parse_node.NthChild(1).GetValue();
|
||||
if (modifier == "const") {
|
||||
node->modifier = Namespace::Const;
|
||||
node->modifier = utils::IsConstModifier::Const;
|
||||
} else if (modifier == "var") {
|
||||
node->modifier = Namespace::Var;
|
||||
node->modifier = utils::IsConstModifier::Var;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -149,11 +149,11 @@ void BuildVisitor::Visit(AliasDefinitionStatement* node) {
|
|||
|
||||
std::string modifier = parse_node.NthChild(0).GetValue();
|
||||
if (modifier == "alias") {
|
||||
node->modifier = AliasDefinitionStatement::Alias;
|
||||
node->modifier = utils::AliasModifier::Alias;
|
||||
} else if (modifier == "type") {
|
||||
node->modifier = AliasDefinitionStatement::Type;
|
||||
node->modifier = utils::AliasModifier::Type;
|
||||
} else if (modifier == "let") {
|
||||
node->modifier = AliasDefinitionStatement::Let;
|
||||
node->modifier = utils::AliasModifier::Let;
|
||||
}
|
||||
|
||||
node->type = parse_node.ChildByFieldName("type").GetValue();
|
||||
|
|
@ -182,9 +182,9 @@ void BuildVisitor::Visit(VariableDefinitionStatement* node) {
|
|||
|
||||
std::string modifier = parse_node.NthChild(0).GetValue();
|
||||
if (modifier == "const") {
|
||||
node->modifier = VariableDefinitionStatement::Const;
|
||||
node->modifier = utils::IsConstModifier::Const;
|
||||
} else if (modifier == "var") {
|
||||
node->modifier = VariableDefinitionStatement::Var;
|
||||
node->modifier = utils::IsConstModifier::Var;
|
||||
}
|
||||
|
||||
current_node_ = parse_node.ChildByFieldName("name");
|
||||
|
|
@ -195,9 +195,9 @@ void BuildVisitor::Visit(VariableDefinitionStatement* node) {
|
|||
|
||||
std::string assignment_modifier = parse_node.NthChild(2).GetValue();
|
||||
if (assignment_modifier == "=") {
|
||||
node->assignment_modifier = VariableDefinitionStatement::Assign;
|
||||
node->assignment_modifier = utils::AssignmentModifier::Assign;
|
||||
} else if (assignment_modifier == "<-") {
|
||||
node->assignment_modifier = VariableDefinitionStatement::Move;
|
||||
node->assignment_modifier = utils::AssignmentModifier::Move;
|
||||
}
|
||||
|
||||
current_node_ = parse_node;
|
||||
|
|
@ -252,9 +252,9 @@ void BuildVisitor::Visit(TypeDefinitionStatement* node) {
|
|||
|
||||
std::string modifier = parse_node.NthChild(0).GetValue();
|
||||
if (modifier == "class") {
|
||||
node->modifier = TypeDefinitionStatement::Class;
|
||||
node->modifier = utils::ClassModifier::Class;
|
||||
} else if (modifier == "struct") {
|
||||
node->modifier = TypeDefinitionStatement::Struct;
|
||||
node->modifier = utils::ClassModifier::Struct;
|
||||
}
|
||||
|
||||
current_node_ = parse_node.ChildByFieldName("definition");
|
||||
|
|
@ -274,9 +274,9 @@ void BuildVisitor::Visit(AbstractTypeDefinitionStatement* node) {
|
|||
|
||||
std::string modifier = parse_node.NthChild(0).GetValue();
|
||||
if (modifier == "basic") {
|
||||
node->modifier = AbstractTypeDefinitionStatement::Basic;
|
||||
node->modifier = utils::AbstractTypeModifier::Basic;
|
||||
} else if (modifier == "abstract") {
|
||||
node->modifier = AbstractTypeDefinitionStatement::Abstract;
|
||||
node->modifier = utils::AbstractTypeModifier::Abstract;
|
||||
}
|
||||
|
||||
current_node_ = parse_node.ChildByFieldName("type");
|
||||
|
|
@ -397,9 +397,9 @@ void BuildVisitor::Visit(FunctionDefinition* node) {
|
|||
node->name.name = parse_node.ChildByFieldName("name").GetValue();
|
||||
|
||||
if (parse_node.NthChild(0).GetValue() == "(") {
|
||||
node->modifier = FunctionDefinition::Operator;
|
||||
node->modifier = utils::FunctionTypeModifier::Operator;
|
||||
} else {
|
||||
node->modifier = FunctionDefinition::Function;
|
||||
node->modifier = utils::FunctionTypeModifier::Function;
|
||||
}
|
||||
|
||||
size_t child_count = parse_node.NamedChildCount();
|
||||
|
|
@ -939,9 +939,9 @@ void BuildVisitor::Visit(ReferenceExpression* node) {
|
|||
for (size_t i = 0; i + 1 < child_count; ++i) {
|
||||
std::string reference = parse_node.NthChild(i).GetValue();
|
||||
if (reference == "~") {
|
||||
node->references[i] = utils::ReferenceType::Reference;
|
||||
node->references[i] = utils::ReferenceModifier::Reference;
|
||||
} else if (reference == "@") {
|
||||
node->references[i] = utils::ReferenceType::UniqueReference;
|
||||
node->references[i] = utils::ReferenceModifier::UniqueReference;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1083,9 +1083,9 @@ void BuildVisitor::Visit(TypeConstructorParameter* node) {
|
|||
|
||||
std::string assignment_modifier = current_node_.NextSibling().GetValue();
|
||||
if (assignment_modifier == "=") {
|
||||
node->asignment_modifier = TypeConstructorParameter::Assign;
|
||||
node->asignment_modifier = utils::AssignmentModifier::Assign;
|
||||
} else if (assignment_modifier == "<-") {
|
||||
node->asignment_modifier = TypeConstructorParameter::Move;
|
||||
node->asignment_modifier = utils::AssignmentModifier::Move;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1445,9 +1445,9 @@ void BuildVisitor::Visit(ExtendedScopedAnyType* node) {
|
|||
for (size_t i = 0; i + 1 < child_count; ++i) {
|
||||
std::string reference = parse_node.NthChild(i).GetValue();
|
||||
if (reference == "~") {
|
||||
node->references[i] = utils::ReferenceType::Reference;
|
||||
node->references[i] = utils::ReferenceModifier::Reference;
|
||||
} else if (reference == "@") {
|
||||
node->references[i] = utils::ReferenceType::UniqueReference;
|
||||
node->references[i] = utils::ReferenceModifier::UniqueReference;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue