Coding Challenge #43: Context-Free Grammar