diff --git a/README.md b/README.md index 7870f8b..a5f4eb4 100644 --- a/README.md +++ b/README.md @@ -34,9 +34,10 @@ The goal is to produce idiomatic, maintainable Go code as part of a one-off conv [ ] Consts and `define()` [ ] `isset`/`unset` [ ] `instanceof` -[ ] `try`/`catch`/`finally` - - Intend to implement using err checks, not panic/recover - - Any statements within the try block should capture the finally/catch to run within any interior err-check blocks +[X] `try`/`catch`/`finally` + - [X] Implement using err checks, not panic/recover + - Maybe `finally` would be more accurately implemented as defer inside an IIFE, but that is not idiomatic, maintainable Go code. + - Any statements within the try block should capture the finally/catch to run within any interior err-check blocks [ ] Abandon upon sight of `eval` / `extract` / ... [ ] Assignment expressions - Go doesn't support assignment in rvalues, only as a statement @@ -73,6 +74,8 @@ The goal is to produce idiomatic, maintainable Go code as part of a one-off conv - [ ] Track golang package imports - [ ] Handle conflicts between golang stdlib packages / local variable names - [ ] uasort -> sort.Slice + - [ ] Output buffering (`ob_start` / `ob_get_clean`) + - Can push/pop os.Stdout onto a private stack, then we can keep using `fmt.Print` - [ ] PHP Superglobal transformations - [ ] `$_SERVER['argv']` to os.Args - [ ] `$_GET['name']` to r.FormValue('name')