parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Ответ

MoKo 21.10.2015 02:05

Такое ощущение, что эти два вида $exception писали разные люди
Да нет, PAF это примерно в одно время все написал: http://cvsview.parser.ru/cgi/viewcvs.cgi/parser3/src/main/pa_request.C?r1=1.247&r2=1.248
Как тут выше справедливо заметили, чтобы появился $.file, надо чтобы код выполнялся. Сейчас запись в логе примерно одинаковая получается, а про различия в структуре Exception думаю PAF не подумал, да и до вас мало кто внимание обращал. :) Попробовал "обмануть" систему:

compile.C
- throw Exception("parser.compile",
- 0,
- "%s(%d:%d): %s", file_list[file_no].cstr(), 1+pc.pos.line, 1+pc.pos.col, pc.error);
+ exception_trace.push(Trace(&String::Empty, Operation::Origin::create(file_no, pc.pos.line, pc.pos.col)));
+ throw Exception("parser.compile", 0, "%s", pc.error);

Оно работает, но потом эта пустая строка появляется. Подумаю, может получится это обойти - этот код плохо покрыт тестами, не хочется баг посадить...