La recherche d'une définition claire de ce qu'est un “tokenizer”, “parser” et “lexers” sont et comment ils sont liés les uns aux autres et utilisés?

Je suis à la recherche d'une définition claire de ce qu'est un "tokenizer", "parser" et "lexer" sont et comment ils sont liés les uns aux autres (par exemple, un analyseur d'utiliser un générateur de jetons ou vice-versa)? J'ai besoin de créer un programme en c/h fichiers source pour extraire des données de déclaration et de définitions.

J'ai été à la recherche d'exemples et peuvent trouver des infos, mais j'ai vraiment du mal à comprendre les concepts sous-jacents comme les règles de grammaire, d'analyser des arbres et de l'arbre de syntaxe abstraite et la manière dont ils sont liés les uns aux autres. Finalement, ces concepts doivent être stockés dans un programme, mais 1) que font-ils ressembler, 2) existe-il des communes des implémentations.

J'ai été à la recherche sur Wikipedia sur ces sujets et des programmes comme Lex et Yacc, mais n'ayant jamais passé par un compilateur de classe (EE majeur), je trouve qu'il est difficile de comprendre pleinement ce qui se passe.

InformationsquelleAutor lordhog | 2008-12-19