[PHP] C++ highlite

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bestaat er daarvoor een vaste functie in PHP zoals
highlight_string() maar dan speciaal voor een stukje
c++ code, zoals dit hier het geval is op de site.

mVG

Acties:
  • 0 Henk 'm!

  • intoxicated
  • Registratie: Januari 2001
  • Niet online

intoxicated

Haaaai :w | ALT-S

Heb je echt goed gezocht? Bij Google is het meteen al raak, een draadje over C++ code highlighting in PHP, waar al meteen de volgende site wordt genoemd: http://www.beautifier.org/

"Anyone who does not agree with me is mentally sick, and should be shot I'm afraid to say."
- Pastor Richards @ VCPR


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
intoxicated schreef op 23 February 2003 @ 12:14:
Heb je echt goed gezocht? Bij Google is het meteen al raak, een draadje over C++ code highlighting in PHP, waar al meteen de volgende site wordt genoemd: http://www.beautifier.org/
Ik heb idd gezocht op google, maar precies niet met de juiste zoektermen.

Thx

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Nergens een deftig script te vinden,
er zal niets anders op zitten den er zelf 1 te schrijven.

Iem die mij een paar tips kan geven ?

Acties:
  • 0 Henk 'm!

Verwijderd

Ehm, is die beautifier van beautifier.org niet precies wat je zoekt :?

Acties:
  • 0 Henk 'm!

  • intoxicated
  • Registratie: Januari 2001
  • Niet online

intoxicated

Haaaai :w | ALT-S

Verwijderd schreef op 23 February 2003 @ 13:47:
Nergens een deftig script te vinden,
er zal niets anders op zitten den er zelf 1 te schrijven.
N.a.v. de tutorial van Beautifier zou het zoiets moeten zijn:

PHP:
1
2
3
4
5
require_once "Beautifier/php/Init.php";
require_once "Beautifier/php/HFile/HFile_cpp.php";
require_once "Beautifier/php/Output/Output_HTML.php";
$highlighter = new Core(new HFile_cpp(), new Output_HTML());
print $highlighter->highlight_text($highlighter->load_file("foo.cpp"));


No flame intended, maar hoeveel makkelijker wou je het hebben?

"Anyone who does not agree with me is mentally sick, and should be shot I'm afraid to say."
- Pastor Richards @ VCPR


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 23 February 2003 @ 14:14:
Ehm, is die beautifier van beautifier.org niet precies wat je zoekt :?
jawel, die doet het, maar niet goed genoeg ;)

En is veel te complex om zelf in te gaan prutsen.

mVg

Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Weet je zeker dat die beautifier niets is?
http://www.beautifier.org/phpqs.php

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
intoxicated schreef op 23 February 2003 @ 14:15:
[...]

No flame intended, maar hoeveel makkelijker wou je het hebben?
[Tegenargument]
Ik heb net besloten om er zelf 1 te maken,
ben ik dan opzoek naar een c/p stukje script ? })

Ik denk van niet
[/....]

Tips zijn nog steeds welkom :)

Acties:
  • 0 Henk 'm!

  • intoxicated
  • Registratie: Januari 2001
  • Niet online

intoxicated

Haaaai :w | ALT-S

Verwijderd schreef op 23 February 2003 @ 14:20:
[...]
[Tegenargument]
Ik heb net besloten om er zelf 1 te maken,
ben ik dan opzoek naar een c/p stukje script ? })
Ik denk van niet
Ik gaf alleen aan dat je argumentatie dat er 'Nergens een deftig script te vinden is' niet op feiten gebaseerd is.
Als we nou toch zo gezellig gaan doen... :/

"Anyone who does not agree with me is mentally sick, and should be shot I'm afraid to say."
- Pastor Richards @ VCPR


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
intoxicated schreef op 23 februari 2003 @ 14:21:
[...]
Ik gaf alleen aan dat je argumentatie dat er 'Nergens een deftig script te vinden is' niet op feiten gebaseerd is.
Als we nou toch zo gezellig gaan doen... :/
Laten we hier geen flame topic van maken, ik denk gewoon dat het woord deftig
een verschillende betekenis geeft in NL.
Weer goeie vriendjes 8)

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

En wat is er dan niet deftig genoeg aan Beautifier :?

Als je nou als argument gebruikte dat ie vreselijk traag is... Of onhandig op te zetten. Maar met "niet deftig" is het denk ik niet echt duidelijk wat er aan mankeert.

Btw, flamen betekend blijkbaar bij jou ook wat anders :P

[ Voor 13% gewijzigd door ACM op 23-02-2003 14:34 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ACM schreef op 23 February 2003 @ 14:33:
En wat is er dan niet deftig genoeg aan Beautifier :?

Als je nou als argument gebruikte dat ie vreselijk traag is... Of onhandig op te zetten. Maar met "niet deftig" is het denk ik niet echt duidelijk wat er aan mankeert.
Met deftig bedoel ik niet traag, onhandig,....

Maar de kleurkes en zo :)

IK weet het, ik ben een moeilijken Belg :+

Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

Verwijderd schreef op 23 februari 2003 @ 12:11:
Bestaat er daarvoor een vaste functie in PHP zoals
highlight_string() maar dan speciaal voor een stukje
c++ code, zoals dit hier het geval is op de site.

mVG
Hier op deze site heeft oisyn 'm geschreven. Mja ik zelf ook een keer in zo'n 10 minuten een HTML-highlighter voor een 4GL in C++ geschreven dus kan niet zo'n rotwerk zijn.

Professionele website nodig?


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
curry684 schreef op 23 February 2003 @ 14:39:
[...]

Hier op deze site heeft oisyn 'm geschreven. Mja ik zelf ook een keer in zo'n 10 minuten een HTML-highlighter voor een 4GL in C++ geschreven dus kan niet zo'n rotwerk zijn.
idd, dat dacht ik ook.
Maar nu is mijn vraag,
Wat het best hoe zetten:
Dus cout bv in vet, gewonen tekst italic, enzo.

Moet ik dan voor alle combinaties een array aanmaken, en als het woord in die array staat, moet het woord ik vet komen te staan?

Of bestaan er betere oplossingen voor ?

Acties:
  • 0 Henk 'm!

  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

Verwijderd schreef op 23 February 2003 @ 14:37:
[...]

Met deftig bedoel ik niet traag, onhandig,....

Maar de kleurkes en zo :)

IK weet het, ik ben een moeilijken Belg :+
Als ik zo eens in de source kijk van de beautifier kan je volgens mij de kleuren heel makkelijk aanpassen. En als dat je enige reden is om het niet gebruiken, zou ik die kleuren gewoon gaan aanpassen, want voor de rest is het een hele mooie applicatie.

Ik kijk bijvoorbeeld in HFile_cpp.php en zie:
PHP:
1
2
3
4
5
6
// Colours

$this->colours          = array("blue", "purple", "gray", "brown", "blue");
$this->quotecolour          = "blue";
$this->blockcommentcolour   = "green";
$this->linecommentcolour    = "green";
en dan een stukje verder:
PHP:
1
2
3
4
5
6
7
8
// Keywords (keyword mapping to colour number)

$this->keywords             = array(
            "bool" => "1", 
            "char" => "1", 
            "class" => "1", 
            "const" => "1", 
            "case" => "1" // etc etc... 
Met een beetje logisch nadenken kan je dan volgens mij die kleuren redelijk aanpassen. :)

Sundown Circus


Acties:
  • 0 Henk 'm!

  • kvdveer
  • Registratie: November 2000
  • Laatst online: 07-11-2023

kvdveer

Z.O.Z.

Globale aanpak:
Comments vinden, Strings vinden, alles wat geen string of comment is door een word-highlighter halen, string eventueel door een stringhighlighter halen (voor %d en zo).

[ Voor 9% gewijzigd door kvdveer op 23-02-2003 15:13 ]

Localhost, sweet localhost


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 17-09 14:05

.oisyn

Moderator Devschuur®

Demotivational Speaker

Lexical analyser bouwen, die de hele source afgaat en daar tokens van maakt. Dus comments, strings, keywords, identifiers, functie-aanroepen (mijn highlighter maakt die bold ;)), etc.

Een lexical analyser kun je bijvoorbeeld bouwen met lex of flex

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06 13:31

drm

f0pc0dert

Mij ontgaat eerlijk gezegd volledig het nut van deze topic.

Je vraagt eerst om een functie, dan om een script, dan krijg je een linkje, en dan is 't weer niet goed genoeg en ga je het maar zelf schrijven :? Make up your mind, will ya? ;)
Yamakasi:
idd, dat dacht ik ook.
Maar nu is mijn vraag,
Wat het best hoe zetten:
Dus cout bv in vet, gewonen tekst italic, enzo.
Stijlproblemen lijkt mij nou echt iets van de allerlaagste prioriteit als je zoiets zelf wilt gaan schrijven. Als je je daar het eerst mee bezig gaat houden, vraag ik me af of je wel de complexiteit van een dergelijk script/programma begrijpt...
Moet ik dan voor alle combinaties een array aanmaken, en als het woord in die array staat, moet het woord ik vet komen te staan?
En wederom, als dit daadwerkelijk je vraag is, zou ik je willen verzoeken om toch even een ander projectje te gaan verzinnen, en je eens bezig te houden met dergelijk eenvoudige denkwerk, voordat je een topic opent.
Of bestaan er betere oplossingen voor ?
Zoals .oisyn aangeeft moet je voor dergelijke dingen aan de slag met een lexical analyzer, of eventueel gaan uitdenken hoe je een lexical analyzer zelf zou implementeren. Maar ik heb het vermoeden dat dit een tikkeltje te hoog is gegrepen :)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Acties:
  • 0 Henk 'm!

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 06-09 00:37

curry684

left part of the evil twins

drm schreef op 24 February 2003 @ 10:31:
Mij ontgaat eerlijk gezegd volledig het nut van deze topic.

Je vraagt eerst om een functie, dan om een script, dan krijg je een linkje, en dan is 't weer niet goed genoeg en ga je het maar zelf schrijven :? Make up your mind, will ya? ;)
Ja het ontging mij ook nogal toen de eerste 10 posts over de highlighter gingen en er plots werd gemeld dat het eigenlijk alleen om het uiterlijk en de kleurtjes van het resultaat ging... :/
Zoals .oisyn aangeeft moet je voor dergelijke dingen aan de slag met een lexical analyzer, of eventueel gaan uitdenken hoe je een lexical analyzer zelf zou implementeren. Maar ik heb het vermoeden dat dit een tikkeltje te hoog is gegrepen :)
Als je de trucs even weet stelt een goede tokenizer die moeiteloos door alle talen spit geen hol voor.

Hint:
C++:
1
2
3
4
5
6
7
class Token
{
public:
  virtual bool Match(char* p_Text) = 0;
  virtual bool Extract(char*& p_Text) = 0;
  ...
};

Professionele website nodig?

Pagina: 1