Skip to content

Commit

Permalink
added "typedef" operator
Browse files Browse the repository at this point in the history
  • Loading branch information
bas1c1 authored Dec 13, 2022
1 parent ba92c9a commit 10d6f70
Showing 1 changed file with 43 additions and 30 deletions.
73 changes: 43 additions & 30 deletions SourceCode/Parser/Parser.cs
Original file line number Diff line number Diff line change
Expand Up @@ -202,42 +202,55 @@ private Statement assignmentStatement()
return new AssignmentStatement(variable, expression());
}

if (current.getType() == TokenType.TYPEDEF)
if (current.getType() == TokenType.TYPEDEF)
{
consume(TokenType.TYPEDEF);
string type = consume(TokenType.WORD).getText();
string variable = consume(TokenType.WORD).getText();
consume(TokenType.EQ);
AssignmentStatement assignmentStatement = new AssignmentStatement(variable, expression(), true);
switch (type) {
case "int": {
assignmentStatement.value = new NumberValue(0);
break;
}
case "string": {
assignmentStatement.value = new NumberValue(0);
break;
}
case "dict": {
assignmentStatement.value = new NumberValue(0);
break;
}
case "stack": {
assignmentStatement.value = new NumberValue(0);
break;
}
case "bool": {
assignmentStatement.value = new NumberValue(0);
break;
}
case "obj": {
assignmentStatement.value = new NumberValue(0);
break;
}
case "arr": {
assignmentStatement.value = new NumberValue(0);
break;
}
switch (type)
{
case "int":
{
assignmentStatement.value = new NumberValue(0);
break;
}
case "enum":
{
assignmentStatement.value = new EnumValue(new Dictionary<string, Value>());
break;
}
case "string":
{
assignmentStatement.value = new StringValue(null);
break;
}
case "dict":
{
assignmentStatement.value = new DictionaryValue(0);
break;
}
case "stack":
{
assignmentStatement.value = new StackValue(0);
break;
}
case "bool":
{
assignmentStatement.value = new BoolValue(true);
break;
}
case "obj":
{
assignmentStatement.value = new ObjectValue(null);
break;
}
case "arr":
{
assignmentStatement.value = new ArrayValue(0);
break;
}
}
return assignmentStatement;
}
Expand Down

0 comments on commit 10d6f70

Please sign in to comment.