Войти

Показать полную графическую версию : Помогите составить регулярное выражение по разбору функции


morebeauty
19-08-2014, 11:10
Не могу вкурить как это сделать. Синтаксис уже до дыр протер, а использовать мозгов наверное не хватает.

Есть функция. Например на паскале.

function fName(params):type;
var variables;
begin
***
body
***
end;

собственно можно ли одной строкой выделить основные части (разобрать функцию)?
начинается с ключевого слова function
далее имя функции
далее в скобках параметры
далее через двоеточие тип возвращаемых данных
далее область определения переменных
далее тело функции между begin и end;

pva
20-08-2014, 08:37
morebeauty, если делать по-честному, то регулярного выражения недостаточно (смотри dragon book, лекции по теории компиляторов). Если тебе не нужно строить Abstract Syntax Tree, а нужно сделать несложное действие (например поменять аргументы местами у функции, написанной без ошибок), то хватит и регулярок. У тебя задача разобрать как это делает компилятор или более простая (и какая)?




© OSzone.net 2001-2012