Схему для Бизона, если интересно, и тремя строчками ты никак не обойдешься. Кроме того, невозможно создать правило которое правильно описывает весь правильный ввод. Поэтому, например:

Код AS3:
function foo():String
{
return "a"
+ "b";
}
Возвращает "а", а не "ab".