129Fermer131
GoldenCrystalLe 21/10/2010 à 18:15
Dans la logique d'un parseur simple sans backtracking, tu devrais faire soit nombre hexa + nombre binaire (deux parties séparées), soit nombre hexa + caractère invalide + nombre. En fait, ça ça va dépendre de la logique que tu choisis, mais en aucun cas tu ne devrais colorer une chaîne invalide dans son intégrité.
Les questions que tu dois te poser sont;
Est-ce que le % a une signification spéciale à l'intérieur d'un nombre hexa ? (Non)
Est-ce que le % a une signification spéciale ? (Par exemple modulo, mais je ne crois pas que ça soit le cas ici)
Est-ce que mettre deux nombre à la suite de l'autre est une opération valide ? Qui plus est sans espaces ?

Après, ce n'est pas non plus au colorateur de faire une analyse syntaxique évoluée, son boulot est juste de faire une coloration du code qui soit la plus juste possible, en tenant compte des éventuelles erreurs, donc le backtracking pour détecter que toute la chaîne #12AB%01010 est invalide, il peut le faire, mais il ne devrait pas (ça devrait faire partie d'un autre ensemble de fonctionnalités plus avancées de l'IDE)