Ik wil graag een uitbreiding voor phpBB schrijven die het mogelijk moet maken om code te highlighten voor (in principe) elke programmeertaal. Nou heb ik daar volgens mij een redelijk goede oplossing voor bedacht, maar ik heb het gevoel dat ik iets over het hoofd zie, waardoor ik het me misschien heel moeilijk ga maken.
Mijn idee:
Ik maak voor elke programmeertaal die ik wil supporten een ini file aan, met daarin wat settings (welk karakter geeft een string aan? e.d.), kleurinstellingen, en natuurlijk alle keywords. Voor C++ heb ik de volgende file in mekaar geflanst:
Karakters onder het 'settings'-deel zijn comma-seperated.
Nou ben ik van plan simpelweg die ini file te parsen met ini_parse(), naar de settings kijken, en dan met behulp van regular expressions de kleuren aanpassen op basis van de settings en colors secties, door één voor één elk keyword te replacen, en strings/comments/enz. natuurlijk ook apart.
Mijn vraag:
Concreet is mijn vraag: zie ik wat over het hoofd? Gaat dit erg veel tijd kosten om te parsen? Of pak ik het echt veel te simpel aan, en is het gewoon niet mogelijk? Want ik heb bijvoorbeeld nergens een C++ bbcode mod kunnen vinden voor phpBB (let wel, daar heb ik nu geen interesse meer in, ik wil nu graag die aanpassing zelf maken, lijkt me wel een uitdaging
).
Mijn idee:
Ik maak voor elke programmeertaal die ik wil supporten een ini file aan, met daarin wat settings (welk karakter geeft een string aan? e.d.), kleurinstellingen, en natuurlijk alle keywords. Voor C++ heb ik de volgende file in mekaar geflanst:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
| [settings] stringchar=",' escapechar=\ specialchar=# commentchar=// commentstart=/* commentend=*/ [colors] normal=blue keywords=darkgreen strings=darkcyan comments=purple operators=red [keywords] 0=auto 1=break 2=case 3=char 4=const 5=continue 6=default 7=do 8=double 9=else 10=enum 11=extern 12=float 13=for 14=goto 15=if 16=int 17=long 18=register 19=return 20=short 21=signed 22=sizeof 23=static 24=struct 25=switch 26=typedef 27=union 28=unsigned 29=void 30=volatile 31=while 32=bool 33=catch 34=class 35=delete 36=friend 37=inline 38=new 39=namespace 40=operator 41=private 42=protected 43=public 44=template 45=this 46=throw 47=try |
Karakters onder het 'settings'-deel zijn comma-seperated.
Nou ben ik van plan simpelweg die ini file te parsen met ini_parse(), naar de settings kijken, en dan met behulp van regular expressions de kleuren aanpassen op basis van de settings en colors secties, door één voor één elk keyword te replacen, en strings/comments/enz. natuurlijk ook apart.
Mijn vraag:
Concreet is mijn vraag: zie ik wat over het hoofd? Gaat dit erg veel tijd kosten om te parsen? Of pak ik het echt veel te simpel aan, en is het gewoon niet mogelijk? Want ik heb bijvoorbeeld nergens een C++ bbcode mod kunnen vinden voor phpBB (let wel, daar heb ik nu geen interesse meer in, ik wil nu graag die aanpassing zelf maken, lijkt me wel een uitdaging
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.