Semantic is bundled with support for several languages such as C, C++, Java, Python, etc. However one of the primary goals of semantic is to provide a framework in which anyone can add support for other languages easily. In order to support a new language, one typically has to provide a lexer and a parser along with appropriate semantic actions that produce the end result of the parser - the semantic tags.
This chapter first discusses the semantic tag data structure to familiarize the reader to the goal. Then all the components necessary for supporting a language is discussed starting with the writing lexer, writing the parser, writing semantic rules, etc. Finally several parsers bundled with semantic are discussed as case studies.