Добавлена поддержка бесконечного цикла for {}
Этот коммит содержится в:
родитель
6d3dfea7d3
коммит
43604f262f
2 изменённых файлов: 29 добавлений и 2 удалений
|
@ -545,13 +545,19 @@ func handleForStmt(stmt *ast.ForStmt) string {
|
||||||
code += handleStmt(stmt.Init, true)
|
code += handleStmt(stmt.Init, true)
|
||||||
code += ";"
|
code += ";"
|
||||||
}
|
}
|
||||||
code += handleBinaryExpr(stmt.Cond) // stmt.Cond
|
|
||||||
|
if stmt.Cond != nil {
|
||||||
|
code += handleBinaryExpr(stmt.Cond)
|
||||||
|
} else {
|
||||||
|
code += "1"
|
||||||
|
}
|
||||||
|
|
||||||
if !is_while {
|
if !is_while {
|
||||||
code += ";"
|
code += ";"
|
||||||
code += handleStmt(stmt.Post, true)
|
code += handleStmt(stmt.Post, true)
|
||||||
}
|
}
|
||||||
code += ") {"
|
code += ") {"
|
||||||
code += handleBlockStmt(stmt.Body) // stmt.Body
|
code += handleBlockStmt(stmt.Body)
|
||||||
code += "}"
|
code += "}"
|
||||||
return code
|
return code
|
||||||
}
|
}
|
||||||
|
|
|
@ -790,6 +790,27 @@ var _ = Describe("Go Translator", func() {
|
||||||
})
|
})
|
||||||
|
|
||||||
Describe("Циклы", 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() {
|
It("for i=0; i<10; i+=1", func() {
|
||||||
source := `package test
|
source := `package test
|
||||||
func Setup() {}
|
func Setup() {}
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче