lady_deirdre/syntax/
mod.rs

1////////////////////////////////////////////////////////////////////////////////
2// This file is part of "Lady Deirdre", a compiler front-end foundation       //
3// technology.                                                                //
4//                                                                            //
5// This work is proprietary software with source-available code.              //
6//                                                                            //
7// To copy, use, distribute, or contribute to this work, you must agree to    //
8// the terms of the General License Agreement:                                //
9//                                                                            //
10// https://github.com/Eliah-Lakhin/lady-deirdre/blob/master/EULA.md           //
11//                                                                            //
12// The agreement grants a Basic Commercial License, allowing you to use       //
13// this work in non-commercial and limited commercial products with a total   //
14// gross revenue cap. To remove this commercial limit for one of your         //
15// products, you must acquire a Full Commercial License.                      //
16//                                                                            //
17// If you contribute to the source code, documentation, or related materials, //
18// you must grant me an exclusive license to these contributions.             //
19// Contributions are governed by the "Contributions" section of the General   //
20// License Agreement.                                                         //
21//                                                                            //
22// Copying the work in parts is strictly forbidden, except as permitted       //
23// under the General License Agreement.                                       //
24//                                                                            //
25// If you do not or cannot agree to the terms of this Agreement,              //
26// do not use this work.                                                      //
27//                                                                            //
28// This work is provided "as is", without any warranties, express or implied, //
29// except where such disclaimers are legally invalid.                         //
30//                                                                            //
31// Copyright (c) 2024 Ilya Lakhin (Илья Александрович Лахин).                 //
32// All rights reserved.                                                       //
33////////////////////////////////////////////////////////////////////////////////
34
35mod captures;
36mod error;
37mod immutable;
38mod morphism;
39mod node;
40mod observer;
41mod parse;
42mod recovery;
43mod rule;
44mod session;
45mod tree;
46mod void;
47
48pub(crate) use crate::syntax::void::is_void_syntax;
49pub use crate::syntax::{
50    captures::{Capture, CaptureIntoIter, CapturesIter, ChildrenIter, Key},
51    error::{ErrorRef, SyntaxError, NIL_ERROR_REF},
52    immutable::ImmutableSyntaxTree,
53    morphism::{PolyRef, PolyVariant, RefKind},
54    node::{AbstractNode, Node, NodeRef, NIL_NODE_REF},
55    observer::{DebugObserver, Observer, VoidObserver},
56    parse::{ParseBlank, ParseNode, ParseNodeChild, ParseToken, ParseTree},
57    recovery::{Recovery, RecoveryResult, UNLIMITED_RECOVERY},
58    rule::{NodeRule, NodeSet, EMPTY_NODE_SET, NON_RULE, ROOT_RULE},
59    session::SyntaxSession,
60    tree::{ErrorIter, NodeIter, SyntaxTree, Visitor},
61    void::VoidSyntax,
62};