Pour faire simple, un analyseur va te détecter tous les composants de ton programme JavaScript et va les ranger par type (variable, valeur, fonction, etc...) et créé des relations entre les objets, et pour ça il me faut une grammaire de préférence officielle (que je ne trouve pas), parceque la faire à la main est pour le moins empirique.
Cf théorie des langages lex/yacc, parser sur google.