Skip to content

Commit 167bbec

Browse files
committed
♻️ simplifying semantic analyzer
1 parent 6bd558d commit 167bbec

File tree

2 files changed

+2
-8
lines changed

2 files changed

+2
-8
lines changed

PascalInterpreter/PascalInterpreter/Semantic analyzer/SemanticAnalyzer.swift

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,8 @@ public class SemanticAnalyzer {
6262
symbolTable.insert(.variable(name: name, type: .real))
6363
}
6464
case let .assignment(left: left, right: right):
65-
guard case let .variable(name) = left else {
66-
fatalError("Assignment left side is not a variable")
67-
}
68-
guard symbolTable.lookup(name) != nil else {
69-
fatalError("Symbol(indetifier) not found '\(name)'")
70-
}
71-
7265
visit(node: right)
66+
visit(node: left)
7367
case .type:
7468
break
7569
case .procedure:

PascalInterpreter/PascalInterpreterTests/SemanticAnalyzer.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class SemanticAnalyzerTests: XCTestCase {
6565
let node = parser.parse()
6666

6767
let analyzer = SemanticAnalyzer()
68-
expectFatalError(expectedMessage: "Cannot assign to undeclared variable x") {
68+
expectFatalError(expectedMessage: "Symbol(indetifier) not found 'x'") {
6969
_ = analyzer.build(node: node)
7070
}
7171
}

0 commit comments

Comments
 (0)