gcd grammar