Добавлена поддержка return -x

Этот коммит содержится в:
Softonik 2022-01-17 03:51:08 +03:00 коммит произвёл Nobody
родитель 3ecf93ee06
коммит cdad80cfca
2 изменённых файлов: 28 добавлений и 0 удалений

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

@ -106,6 +106,12 @@ func handleBasicLit(bl *ast.BasicLit) string {
return bl.Value return bl.Value
} }
func handleUnaryExpr(expr *ast.UnaryExpr) string {
code := expr.Op.String()
code += handleExpr(expr.X)
return code
}
func handleBinaryExpr(expr ast.Expr) string { func handleBinaryExpr(expr ast.Expr) string {
be := expr.(*ast.BinaryExpr) be := expr.(*ast.BinaryExpr)
code := handleExpr(be.X) code := handleExpr(be.X)
@ -153,6 +159,8 @@ func handleExpr(expr ast.Expr) string {
switch e := expr.(type) { switch e := expr.(type) {
case *ast.BasicLit: case *ast.BasicLit:
code += handleBasicLit(e) code += handleBasicLit(e)
case *ast.UnaryExpr:
code += handleUnaryExpr(e)
case *ast.BinaryExpr: case *ast.BinaryExpr:
code += handleBinaryExpr(e) code += handleBinaryExpr(e)
case *ast.CallExpr: case *ast.CallExpr:

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

@ -573,6 +573,26 @@ var _ = Describe("Go Translator", func() {
` `
Compare(source, expected) Compare(source, expected)
}) })
It("Объявление int функции с return -1", func() {
source := `package test
func Setup() {}
func Loop() {
}
func MyFunction() int {
return -1
}
`
expected := `
void setup() {}
void loop() {
}
MyFunction() {
return -1;
}
`
Compare(source, expected)
})
It("Объявляет и вызывает функцию", func() { It("Объявляет и вызывает функцию", func() {
source := `package test source := `package test
func Setup() {} func Setup() {}