Siemka,
Mam problem, otóż piszę program do analizy kodów źródłowych, i w String code mam kod źródłowy odczytaany z pliku.
Pierwszym zadaniem jest pozbycie się #include z początku String. Niestety nigdy nie wiem ile tych #include będzie.
Macie jakieś pomysły jak to zrobić ? Splitować jakoś ? aplikację piszę w javie i będzie obrabiała jedynie kody c++.
#cpp #java #parser
Mam problem, otóż piszę program do analizy kodów źródłowych, i w String code mam kod źródłowy odczytaany z pliku.
Pierwszym zadaniem jest pozbycie się #include z początku String. Niestety nigdy nie wiem ile tych #include będzie.
Macie jakieś pomysły jak to zrobić ? Splitować jakoś ? aplikację piszę w javie i będzie obrabiała jedynie kody c++.
#cpp #java #parser
rotflolmaomgeez
2017-09-18 20:26:05
+1
@DaxterPoker: są gotowe generatory parserów, w tym dla javy. Podajesz gramatykę i generuje ci parser, przykład: BNFC ( http://bnfc.digitalgrammars.com/ ). Pełnej gramatyki C++ nie znajdziesz, bo nie istnieje - ale jakieś podzbiory już tak :) i tak wyjdzie znacznie lepiej niż pisanie tego od podstaw.
TheNewIcek
2017-09-18 18:20:26
+0
DaxterPoker
[OP]
2017-09-18 18:30:53
+0
@TheNewIcek: Załóżmy że są na początku kodu.
TheNewIcek
2017-09-18 18:35:13
+0
@DaxterPoker: rozbic na poszczegolne linie i albo szukac regexpem
edit: ten regexp nie uwzglednia glupich bledow typu
`#[ ]*include[ ]+["<].*[">]` (niezbyt czesto pisze ale mniej wiecej cos takiego) albo zrob sobie sam prosty parser.
edit: ten regexp nie uwzglednia glupich bledow typu
#include <asd.h"