ThK: (C++ --» HTML)

Gute Nacht allerseits,

ich suche ein Tool, das C++ Quelltexte in HTML umwandelt. Soll heißen, mit farblicher Hervorhebung von Schlüsselworten usw.

Weiß jemand Rat?

ThanX, ThK

  1. Hallo

    ich suche ein Tool, das C++ Quelltexte in HTML umwandelt. Soll heißen, mit farblicher Hervorhebung von Schlüsselworten usw.

    Ein derartiges Tool ist mir nicht bekannt - aber ich finde die Idee, danach zu fragen, so gut, dass ich unsere Perl-Cracks mal anstiften moechte, sich Gedanken zu machen, ob man so was nicht mal als CGI-Service anbieten koennte:

    der User kopiert in ein grosses textarea-Feld seinen Quelltext hinein - C, Pascal, Perl und andere typische Sprachen. Aus einer select-Liste wird die entsprechende Sprache ausgewaehlt. Das verarbeitende CGI-Script kennt die Schluesselwoerter und Sprachelemente der jeweiligen Sprachen (einfach in irgendwelchen Listen gespeichert). Nun wandelt es den Source-Code HTML-gerecht um, ersetzt HTML-eigene Zeichen durch die entsprechenden HTML-Maskierungen, und macht aufgrund seiner Kenntnisse um alle Schluesselwoerter und Sprachelemente entsprechende <font color> oder besser <span style>-Angaben. Schliesslich verpackt es den gesamten Source-Code noch in ein <pre>...</pre>, und den so erzeugten HTML-Quelltext gibt es mit content-type: text/plain an den wartenden Browser des Users aus. Der kann sich dann den Output in eine HTML-Datei kopieren ...

    viele Gruesse
      Stefan Muenz

    1. Dat klingt richtig gut, aber nach einem haufen Arbeit!
      Wenn Ihr das fertig habt, tauch das doch hoffentlich hier auf ;-) ?

      Gruß und Dank
      ThK

    2. Ein derartiges Tool ist mir nicht bekannt - aber ich finde die Idee, danach zu fragen, so gut, dass ich unsere Perl-Cracks mal anstiften moechte, sich Gedanken zu machen, ob man so was nicht mal als CGI-Service anbieten koennte:

      Hm. Es läuft m. E. darauf hinaus, für jeder der genannten Sprachen einen Strukturparser und einen (trivialen) Codegenerator zu schreiben. Darauf hätte ich allerdings nicht die geringste Lust - die komplette Syntax von C++ oder in regular expressions darzustellen, gruselwusel ...
      Außerdem gibt es solche Parser natürlich schon, denn die Sprachen werden ja verwendet.

      Mein Ansatzpunkt wäre also, irgendwo den Source Code eines bereits existierenden Parsers für eine solche Sprache zu erbeuten und den Codegenerator (der den Strukturbaum in eine HTML-Ausgabe umwandelt) dann selbst zu schreiben. Dieser müßte sich natürlich an die Datenstruktur des Parsers anpassen.
      Ich halte Perl nicht zwingend für die Sprache, in der man einen solchen Parser finden würde. Eigentlich denke ich da eher an etwas, was sich für eine solchen Sprachanalyse besser eignen würde, nämlich einen Parsergenerator auf der Basis von lex und yacc ... also letztlich generierten C-Code.

      Der CGI-Anschluß ist für das Problem sekundär.

      Ein lustiger alternativer Ansatz für entsprechende Freaks könnte es sein, sich den Source Code für Highlighting bestimmter Sprachen in Emacs zu besorgen. Der ist nun allerdings wahrscheinlich in Lisp, und das ist nicht gerade meine Lieblingssprache ... aber ... immerhin müßte es den umsonst geben.

      Oder wenn es konkret C++ sein soll (das war ja der Ansatzpunkt des Threads): Es gibt da einen GNU-C++-Compiler, der C++ versteht. Man nehme also diesen und schreibe seinen Codegenerator auf die Erzeugung von HTML um ...

      1. Hallo zusammen,

        .. die komplette Syntax von C++ oder in regular expressions darzustellen, gruselwusel ...

        In regexp? Ich denke mal, BNF-Notation ist da eher geeignet. Trotzdem GRUSEL, irgenwo habe ich mal gelesen: "C-Programmers doesnt need a grammar, they forge it with macros..."

        Ich halte Perl nicht zwingend für die Sprache, in der man einen solchen Parser finden würde. Eigentlich denke ich da eher an etwas, was sich für eine solchen Sprachanalyse besser eignen würde, nämlich einen Parsergenerator auf der Basis von lex und yacc ...

        Damit (YACC)  dürfte es auch schwierig werden, wegen des LALR0 . Müsste schon ein COCO mit infinitem Lockahead sein. Habe sowas mal in PASCAL geschrieben, ist aber leider nur ein DOS-Progamm. Bin dazu aber von einem analogen C-Programm namens PRECCX inspiriert worden ( gibt es auch für linux ) :

        http://archive.comlab.ox.ac.uk/redo/precc.html

        vieleicht hilft das ja weiter. Eine rudimentäre C-Grammatik war ( glaube ich ) sogar bei den Beispielen mit dabei.

        CU Slim.

        1. Hi Slim,

          irgenwo habe ich mal gelesen: "C-Programmers doesnt need a grammar, they forge it with macros..."

          da kenne ich noch einen. Ein C-Compiler ist erst dann gut, wenn er Shakespeares Hamlet ohne Fehlermeldung compiliert <g>

          Gruss,
          Martin (C/C++-Entwickler, und noch lebe ich)

  2. Guten Morgen,

    ich suche ein Tool, das C++ Quelltexte in HTML umwandelt. Soll heißen, mit farblicher Hervorhebung von Schlüsselworten usw.

    benutzt du Visual C++ 5 oder 6? Dann schau mal bei http://www.codeguru.com/ nach, dort findest du bei den AddOns ein Tool, dass das kann.

    Gruss,
    Martin

    1. Moin, Moin...

      Die Seite kenn ich recht gut, finde dort aber nix. Michse blind?! (Für alle Unwissenden: Gruß an Jar Jar Binks (Star Wars))

      Nein, ernsthaft, ich wußte, ich hatte sowas schon in der Hand, hab's aber auf meinen CD's nicht gefunden (ca. 10 HTML-Editoren und Tools ausprobiert *buäh*) kann also nur noch von CodeGuru sein, aber wo? Kannst Du mir sagen wo genau, oder gar Name oder Tool schicken?

      Danke!

      ThK

      1. Hi Th (Thomas? Thorsten? Theobald?),

        kann also nur noch von CodeGuru sein, aber wo? Kannst Du mir sagen wo genau, oder gar Name oder Tool schicken?

        weil's du bist: http://www.codeguru.com/devstudio_macros/HtmlOut.shtml. Hab' auch suchen müssen, aber ich habe ungefähr gewusst in welcher Sektion es ist ;-)

        Gruss,
        Martin

        1. Hi Th (Thomas? Thorsten? Theobald?),

          kann also nur noch von CodeGuru sein, aber wo? Kannst Du mir sagen wo genau, oder gar Name oder Tool schicken?

          weil's du bist: http://www.codeguru.com/devstudio_macros/HtmlOut.shtml. Hab' auch suchen müssen, aber ich habe ungefähr gewusst in welcher Sektion es ist ;-)

          Gruss,
          Martin

          Tausend Dank!!!

          Das war's gewesen. Danke für die schnelle Hilfe!

          ThK

          BTW: Thoralf Knuth ;-)

  3. ich suche ein Tool, das C++ Quelltexte in HTML umwandelt. Soll heißen, mit farblicher Hervorhebung von Schlüsselworten usw.

    Da lobe ich mir meinen HTML Editor, der alles kann (und was er nicht kann, gibz vielleicht irgendwo als Plug-In) ;). IT'S FREEWARE AND IT'S (imho) GOOD! :)

    http://www.meybohm.de/htmledit/index.html

    Er hat nicht nur Umwandlung von C++ in HTML mit Syntax-Highlighting parat, sondern man kann sogar damit direkt C++ programmieren (auch gehighlightet), dafür ist aber der Proton (bzw. deine jetzige Entwicklungs-Umgebung) sicher besser geeignet.

    bis nextens
    xitnalta

    1. Da lobe ich mir meinen HTML Editor, der alles kann (und was er nicht kann, gibz vielleicht irgendwo als Plug-In) ;). IT'S FREEWARE AND IT'S (imho) GOOD! :)

      Jo, der ist wirklich gut. Ich arbeite seit über einem Jahr nur damit. Der ist besser als alle großen und sonstigen. Das dort eingebaute Schlüsselworter-Tagging macht aber leider nur die Schlüsselworte fett, ich bräuchte was mit Kommentaren, functions etc. (Hab' ich etwa was übersehen und er kann's doch?)

      bis nextens
      xitnalta

      (Dennoch) Danke!
      ThK