Post
#1
|
|
|
Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 19.08.2004 Skąd: Pruszków Ostrzeżenie: (0%)
|
Witam,
Wraz z moim znajomym piszemy skrypt odpowiedzialny za kolorowanie skladni w artykulach i forum w naszym serwisie. Jak dotad wszystko nam szlo jak po masle, ale natknelismy sie na pewien problem, z ktorym od pewnego juz czasu nie mozemy dac sobie sami rady. Problem polega na tym, ze jak kolorujemy slowa kluczowe (dla przykladu niech to bedzie int z C) to slowa te nam sie koloruja, ale niestety rowniez wtedy, jesli slowo to jest lancuchem znakow. Mamy powiedzmy taki oto prosty kod napisany w C: Kod #include <stdio.h> int main() { printf("Hello int World \n"); return 0; } i teraz powiedzmy, ze chcemy pokolorowac wszystkie int na niebiesko, wiec:
I teraz pytanie. Jak powinno wygladac wyrazenie regularne, aby nie kolorowalo tekstu w cudzyslowach? Probowalem tak:
Niestety tez nie dziala. Juz nie mam pomyslu jak mozna sobie z tym poradzic. Bede wdzieczny za wszelkie informacje. |
|
|
|
![]() |
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 90 Pomógł: 0 Dołączył: 3.04.2003 Skąd: Opole Ostrzeżenie: (0%)
|
W tym dekoderze kolorowanie skladni dziala niestety tylko na Mozilli. Na IE nie dziala poniewaz string zawierajacy znak nowej lini "\n" ktory został wygenerowany przez javascript nie działa w tagach PRE, nie mam pojęcia czemu.
Jak znajdę trochę czasu to spróbuję napisać w php kolorowanie składni dla C/SQL i może dołącze mały tutorial (niestety pewnie po angielsku). W sumie to nie jest trudne, jak się idzie na skróty tak jak ja to zrobiłem, niezbyt profejonalnie, ale spełnia swoje założenia, najważniejsze że działa ! Już słyszałem od paru osób że jedynym słusznym rozwiązaniem tego problemu jest napisanie parsera, ktory zajmie z minimum 200 KB, a napisanie go zajmie z kilka miechów, no thx (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg) W sumie to kolorowanie tej skladni C mozna by napisac w javascript, a później mały skrypt który pobiera na stronie wszystkie elementy PRE z klasa np "clanguage" i je koloruje. Kod <pre class="clanguage">
#include <stdio.h> int main() { printf("Hello int World \n"); return 0; } </pre> |
|
|
|
y3ti Wyrazenia Regularne 19.08.2004, 12:49:26
DeyV Wydaje mi się, zę w takim przypadku najlepiej by b... 19.08.2004, 14:30:30
y3ti Postanowilem jeszcze raz poszukac na googlach i zn... 20.08.2004, 12:01:22
DeyV Bardzo ciekawy projekt. Jestem pod wrażeniem. Zału... 20.08.2004, 13:14:13
Parti Cytat(cagrET @ 2004-08-20 02:32:50)Już słysza... 20.08.2004, 13:14:16
cagrET CytatTo bardzo ciekawe. Do kolorowania składni wys... 20.08.2004, 14:55:14
Parti Cytat(cagrET @ 2004-08-20 15:55:14)Btw. masz ... 20.08.2004, 15:08:09 ![]() ![]() |
|
Aktualny czas: 22.12.2025 - 22:38 |