//////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2010, 2026 Contributors to the Eclipse Foundation
//
// See the NOTICE file(s) distributed with this work for additional
// information regarding copyright ownership.
//
// This program and the accompanying materials are made available
// under the terms of the MIT License which is available at
// https://opensource.org/licenses/MIT
//
// SPDX-License-Identifier: MIT
//////////////////////////////////////////////////////////////////////////////

include::_part_attributes.asciidoc[]

:leveloffset: -2

[[setext-chapter-index]]
== SeText scanner/parser generator

SeText is a textual syntax specification language and associated scanner/parser generator.
It can be used to specify the syntax of a language, and automatically generate a scanner and LALR(1) parser(s).

For the purpose of this documentation, it is assumed that the reader:

* Is familiar with scanner/parser generators (for example _yacc_/_bison_ and _lex_/_flex_).
* Is familiar with scanner and LALR(1) parser technology, including regular expressions and BNF notation.
* Understands the limitations of the LALR(1) algorithm.

The following topics explain the SeText language and tools in more detail:

* <<setext-lexical-syntax>>
* <<setext-specifying-lexical-syntax>>
* <<setext-regular-expressions>>
* <<setext-terminal-descriptions>>
* <<setext-imports>>
* <<setext-scanner-hooks>>
* <<setext-specifying-grammars>>
* <<setext-parser-hooks>>
* <<setext-usage-hints>>
* <<setext-generated-scanners-parsers>>
* <<setext-using-in-an-eclipse-plugin-project>>
* <<setext-limitations>>
