Context-free grammar is usually used for describing the structure of languages and BNF notation is typical to define that grammar. Grammatical tokenss include numerical constants and literal strings and control structures such as assignments, conditions and loops.
Programss or code that do parsing are called called parsers. Yacc (yet another compiler compiler) is a program that generates parsers in the C programming language.
See also: lexical analysis