Добавлена поддержка бесконечного цикла for {}

Этот коммит содержится в:
Softonik 2022-11-19 22:39:55 +03:00 коммит произвёл Nikolay Kopitonenko
родитель 6d3dfea7d3
коммит 43604f262f
2 изменённых файлов: 29 добавлений и 2 удалений

Просмотреть файл

@ -545,13 +545,19 @@ func handleForStmt(stmt *ast.ForStmt) string {
code += handleStmt(stmt.Init, true)
code += ";"
}
code += handleBinaryExpr(stmt.Cond) // stmt.Cond
if stmt.Cond != nil {
code += handleBinaryExpr(stmt.Cond)
} else {
code += "1"
}
if !is_while {
code += ";"
code += handleStmt(stmt.Post, true)
}
code += ") {"
code += handleBlockStmt(stmt.Body) // stmt.Body
code += handleBlockStmt(stmt.Body)
code += "}"
return code
}

Просмотреть файл

@ -790,6 +790,27 @@ var _ = Describe("Go Translator", func() {
})
Describe("Циклы", func() {
It("for {}", func() {
source := `package test
func Loop() {
var i int
for {
i = i
}
}
`
expected := `
void loop();
void loop() {
int i;
while (1) {
i = i;
}
}
`
Compare(source, expected)
})
It("for i=0; i<10; i+=1", func() {
source := `package test
func Setup() {}