Question

Je reçois un hébergeur et des projets avec des matelots. Je pensais que ce serait une bonne idée d’avoir mon propre site de collage sans date d’expiration (je sais que http: // pastie. org / existe) et d'autres choses. Je voulais savoir. Qu'est-ce qu'un simple point fort que je peux utiliser sur le code? Je serais seulement en utilisant C / C ++.

Était-ce utile?

La solution

La question est étiquetée "php". mais vous "utiliseriez seulement C / C ++"?

Une solution PHP est GeSHi .

Autres conseils

Construire un surligneur pour une seule langue (sans contexte, avec des lexèmes normaux tels que C ++) est en fait assez facile car vous pouvez en principe regrouper tous vos lexèmes dans une grande expression régulière:

$cpplex = '/
    (?<string>"(?:\\\\"|.)*?")|
    (?<char>\'(?:\\\\\'|.)*?\')|
    (?<comment>\\/\\/.*?\n|\\/\*.*?\*\\/)|
    (?<preprocessor>#\w+(?:\\\\\n|[^\\\\])*?\n)| # This one is not perfect!
    (?<number>
        (?: # Integer followed by optional fractional part.
            (?:0(?:
                    x[0-9a-f]+|[0-7]*)|\d+)
            (?:\.\d*)?(?:e[+-]\d+)?)
        |(?: # Just the fractional part.
            (?:\.\d*)(?:e[+-]\d+)?))|
    (?<keyword>asm|auto|break|case…)|            # TODO Complete. Include ciso646!
    (?<identifier>\\w(?:\\w|\\d)*)
    /xs';

$matches = preg_match_all($cpplex, $input, $matches, PREG_OFFSET_CAPTURE);

foreach ($matches as $match) {
    // TODO: determine which group was matched.
    // Don't forget lexemes that are *not* part of the expression:
    // i.e. whitespaces and operators. These are between the matches.
    echo "<span class=\"$keyword\">$token</span>";
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top