parsing.go
func checkBalance(tokens []ExpressionToken) error {

	var stream *tokenStream
	var token ExpressionToken
	var parens int

	stream = newTokenStream(tokens)

	for stream.hasNext() {

		token = stream.next()
		if token.Kind == CLAUSE {
			parens++
			continue
		}
		if token.Kind == CLAUSE_CLOSE {
			parens--
			continue
		}
	}

	if parens != 0 {
		return errors.New("Unbalanced parenthesis")
	}
	return nil
}
func checkBalance(tokens []ExpressionToken) error {

	var stream *tokenStream
	var token ExpressionToken
	var parens int

	stream = newTokenStream(tokens)

	for stream.hasNext() {

		token = stream.next()
		if token.Kind == CLAUSE {
			parens++
			continue
		}
		if token.Kind == CLAUSE_CLOSE {
			parens--
			continue
		}
	}

	if parens != 0 {
		return errors.New("Unbalanced parenthesis")
	}
	return nil
}
func checkBalance ( tokens [ ] ExpressionToken ) error { var stream * tokenStream var token ExpressionToken var parens int stream = newTokenStream ( tokens ) for stream . hasNext ( ) { token = stream . next ( ) if token . Kind == CLAUSE { parens ++ continue } if token . Kind == CLAUSE_CLOSE { parens -- continue } } if parens != 0 { return errors . New ( " " ) } return nil }
/*
	Checks the balance of tokens which have multiple parts, such as parenthesis.
*/
/ * Checks the balance of tokens which have multiple parts such as parenthesis .