When a source program containing annotations is processed by a
user-selected tool, the annotations in the source program are detected by
a lexer and passed to an annotation processor corresponding to the
selected tool. The system contains a number of annotation processors and a
number of program processing tools, and the annotation processor to which
the annotations are passed is selected based upon the user-selected tool.
The selected annotation processor converts annotations compatible with the
user-selected tool into annotation tokens and returns the annotation
tokens to the lexer. The lexer generates tokens based upon the
programming-language statements in the source program, and passes both the
tokens and annotation tokens to a parser. The parser, in turn, assembles
the tokens and annotation tokens into an abstract syntax tree, which is
then passed to the user-selected tool for further processing.
Όταν ένα πρόγραμμα πηγής που περιέχει τους σχολιασμούς υποβάλλεται σε επεξεργασία από ένα χρήστης-επιλεγμένο εργαλείο, τους σχολιασμούς στο πρόγραμμα πηγής ανιχνεύονται από ένα lexer και περνούν σε έναν επεξεργαστή σχολιασμών που αντιστοιχεί στο επιλεγμένο εργαλείο. Το σύστημα περιέχει διάφορους επεξεργαστές σχολιασμών και διάφορα εργαλεία επεξεργασίας προγράμματος, και ο επεξεργαστής σχολιασμών στον οποίο τους σχολιασμούς περνούν επιλέγεται βασισμένος στο χρήστης-επιλεγμένο εργαλείο. Ο επιλεγμένος επεξεργαστής σχολιασμών μετατρέπει τους σχολιασμούς συμβατούς με το χρήστης-επιλεγμένο εργαλείο στα σημεία σχολιασμών και επιστρέφει τα σημεία σχολιασμών στο lexer. Το lexer παράγει τα σημεία που βασίζονται στις προγραμματίζω-γλωσσικές δηλώσεις στο πρόγραμμα πηγής, και περνά και τα σημεία και τα σημεία σχολιασμών σε έναν κατατμητή. Ο κατατμητής, στη συνέχεια, συγκεντρώνει τα σημεία και τα σημεία σχολιασμών σε ένα αφηρημένο δέντρο σύνταξης, το οποίο περνούν έπειτα στο χρήστης-επιλεγμένο εργαλείο για την περαιτέρω επεξεργασία.