package main var s string var pT int // Ubuntu(12.04)/amd64 // go version devel +4fa98cce4290 Mon Oct 29 11:16:58 2012 -0400 func main() { s = "(())" pT = 0 p() } func p() { if pT >= len(s) { return } if s[pT] == '(' { pT += 1 p() if pT < len(s) && s[pT] == ')' { pT += 1 } else { // comment following println() triggers "nosplit stack overflow" // otherwise it "works" println("problem", s) return } p() } }