Course Outline


About ANTLR

Pre-requisites

  • Participants must have a good knowledge of Java
  • Good to know Finite Automata.

Duration

  • 2-3 days

Lab Setup

  • A minimum of 20GB of disk space and atleast 4GB of RAM
  • Ensure that all participants have a properly functioning Internet connection

Course Outline

High Level Overview
  • Installation
  • Grammar Lexicon
  • Grammar Structure
  • Parser Rules
  • Actions and Attributes
  • Lexer Rules
  • Wildcard Operator and Nongreedy Subrules
  • Parse Tree
  • Semantic Predicates
  • Options
  • Parsing binary streams
Grammar Lexicon
  • Identifiers
  • Literals
  • Actions
  • Keywords
Grammar Structure
  • Grammar Imports
  • Tokens Section
Parser Rules
  • Alternative Labels
  • Rule Context Objects
  • Rule Element Labels
  • Rule Elements
  • Subrules
  • Catching Exceptions
  • Rule Attribute Definitions
  • Start Rules and EOF
  • Left-recursive rules
Actions and Attributes
  • Token Attributes
  • Parser Rule Attributes
  • Dynamically-Scoped Attributes
Lexer Rules
  • Lexical Modes
  • Lexer Rule Elements
  • Recursive Lexer Rules
  • Redundant String Literals
  • Lexer Rule Actions
  • Different Lexer Commands
Wildcard Operator and Nongreedy Subrules
  • Nongreedy Lexer Subrules
  • Nongreedy Parser Subrules
Parse Tree
  • Parse Tree Listeners
  • Parse tree patterns
  • Pattern labels
  • Creating parse trees with the pattern matcher
  • Using XPath to identify parse tree node sets
  • Combining XPath and tree pattern matching
Semantic Predicates
  • Making Predicated Parsing Decisions
  • Finding Visible Predicates
  • Using Context-Dependent Predicates
  • Predicates in Lexer Rules
Using Options
  • Grammar Options
  • Rule Options
  • Rule Element Options
  • ANTLR Tool Command Line Options
Parsing Binary Files
  • Binary streams
  • Custom stream
  • Error handling in binary files

The classroom training will be provided in Bangalore (Bengaluru), Chennai, Hyderabad or Mumbai and will be conducted in the client's premises. All the necessary hardware/software infrastructure must be provided by the client.