30.1 Chomsky Grammars . . . . . . . . . . . . . . . . 30.1.1 Regular Grammars . . . . . . . . . . . . . 30.1.2 Context-Free Grammars . . . . . . . . . . 30.1.3 Context-Sensitive Grammars . . . . . . . 30.1.4 Recursively Enumerable Grammars . . . . 30.2 Regular Expressions . . . . . . . . . . . . . . . . 30.2.1 Characters and Character Classes . . . . 30.2.2 Logical Operators and Capturing Groups 30.2.3 Greedy Quantifiers . . . . . . . . . . . . . 30.2.4 Boundary Requirements . . . . . . . . . . 30.2.5 Using Regular Expressions in Code . . . . 30.2.6 Drawback of Regular Expressions . . . . . 30.3 Context-Free Parsers . . . . . . . . . . . . . . . 30.3.1 Default Output . . . . . . . . . . . . . . . 30.3.2 Specified Output . . . . . . . . . . . . . . 30.4 Project Integration |