reflection library
This package contains tools to reflect on and transform parsers.
Classes
- Analyzer
- Helper to reflect on properties of a grammar.
- LinterIssue
- Encapsulates a single linter issue.
- LinterRule
- Encapsulates a single linter rule.
Enums
- LinterType
- The type of a linter issue.
Constants
-
allLinterRules
→ const List<
LinterRule> - All default linter rules to be run.
Functions
-
allParser(
Parser root) → Iterable< Parser> -
Returns a lazy iterable over all parsers reachable from
root
using a depth-first traversal over the connected parser graph. -
linter(
Parser parser, {LinterCallback? callback, List< LinterRule> ? rules, Set<String> excludedRules = const {}, Set<LinterType> excludedTypes = const {LinterType.info}}) → List<LinterIssue> -
Returns a list of linter issues found when analyzing the parser graph
reachable from
parser
. -
removeDuplicates<
T> (Parser< T> parser) → Parser<T> -
Returns a copy of
parser
with all duplicates parsers collapsed. -
removeSettables<
T> (Parser< T> parser) → Parser<T> -
Returns a copy of
parser
with all settable parsers removed. -
transformParser<
T> (Parser< T> parser, TransformationHandler handler) → Parser<T> -
Transforms all parsers reachable from
parser
with the givenhandler
. The identity function returns a copy of the the incoming parser.
Typedefs
- LinterCallback = void Function(LinterIssue issue)
- Function signature of a linter callback that is called whenever a linter rule identifies an issue.
-
TransformationHandler
= Parser<
T> Function<T>(Parser< T> parser) - A function transforming one parser to another one.