hirthwork 11.07.2012 18:06 mcabber313ED323

посоны, а вот ежели есть у меня сырец с каментами типа //, /* */ и в этом сырце ещё строчки плюсовые могу встречаться между закавычками, то как по умному похерить из этого файла и строки и каменты? ведь в коде же может быть хуита типа const char* c = "/*"; const char* c2 = "*/"; ← тут-то нихуя нельзя вырезать просто всё что между /* и */. в общем, я раздумьях.

1. Minoru 11.07.2012 18:08 antaeus

// — простым s#^\s*//.*$##. /* */ — сначала grep '/*', потом текстовым редактором с заменой и проверкой.

2. hirthworkMinoru /1 11.07.2012 18:11

хм. может второй тег тебе не подсказал, но это нужно запрограммировать.

3. magog 11.07.2012 18:11 Azoth

эм, никак?

4. hirthworkmagog /3 11.07.2012 18:12 mcabber313ED323

почему «никак»? можно, но уж больно ёбко. я пока что ищу метод попроще

5. magoghirthwork /4 11.07.2012 18:13 Azoth

и как ты отличишь тобой дже приведенный пример?

6. Minoruhirthwork /2 11.07.2012 18:14 antaeus

Не подсказал. Я его ставлю на все посты, имеющие отношение к программированию, например.
То, что ты хочешь, могут уметь какие-нибудь рефакторы в IDE. В общем случае задача регулярками не решится, как мне кажется, по крайней мере, не в разумные сроки.

7. hirthworkmagog /5 11.07.2012 18:14 mcabber313ED323

например сначала удалить все заэксейпленные строки (в валидном плюсовом коде не может идти слеш перед началом строки), затем бежать по тексту, если нашли кавычку — удалить всё до следующей кавычки. если нашли // — удалить всё до \n. если нашли /* — удалить всё до */. ничего сложного, но хотеть что либо попроще

8. hirthworkhirthwork /7 11.07.2012 18:15 mcabber313ED323

блядь, какие нахуй IDE? я, блядь, по твоему должен IDE ставить всюду где нужно такое действие выполнять? съеби уже, дай поцанам о программировании поговорить. о программировании, блядь, а не обработке текста программ в IDE

9. hirthworkhirthwork /8 11.07.2012 18:16 mcabber313ED323

ответ на /6 obv

10. gelraen 11.07.2012 18:24

cpp(1) ?

11. gelraenMinoru /6 11.07.2012 18:25

правильно, регекспами не решится. тут надо полноценный парсер

12. hirthworkgelraen /10 11.07.2012 19:24 mcabber6BE3499F

и как?

13. gelraenhirthwork /12 11.07.2012 19:26 imax

да просто обрабатывать выхлоп cpp вместо исходного файла. Если тебя они смущают, можешь перед этим убрать из файла все #include

14. gelraenhirthwork /12 11.07.2012 19:28 imax

или можешь таки навелосипедить небольшой парсер на lex, парсить надо будет только небольшое подмножество языка, так что это не должно быть очень сложно

15. hirthworkgelraen /13 11.07.2012 19:28 mcabber6BE3499F

охнихуясебе. я и не знал, что cpp умеет комментарии резать

16. gelraenhirthwork /15 11.07.2012 19:31 imax

ну, теперь знаешь :)

17. hirthworkgelraen /16 11.07.2012 19:33 mcabber6BE3499F

ога. спасибо

18. hirthwork 11.07.2012 19:34 mcabber6BE3499F

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

Do you really want to delete ?