  Parsing Expression Grammars are a popular foundation for describing syntax.
Unfortunately, several syntax of programming languages are still hard to
recognize with pure PEGs. Notorious cases appears: typedef-defined names in
C/C++, indentation-based code layout in Python, and HERE document in many
scripting languages. To recognize such PEG-hard syntax, we have addressed a
declarative extension to PEGs. The "declarative" extension means no programmed
semantic actions, which are traditionally used to realize the extended parsing
behavior. Nez is our extended PEG language, including symbol tables and
conditional parsing. This paper demonstrates that the use of Nez Extensions can
realize many practical programming languages, such as C, C\#, Ruby, and Python,
which involve PEG-hard syntax.
