Actually just three programming languages in a trenchcoat
1//! The various AST nodes of a parsed Trilogy program.
2
3mod amble;
4mod application;
5mod array_comprehension;
6mod array_literal;
7mod array_pattern;
8mod assert_statement;
9mod assignment_statement;
10mod atom_literal;
11mod become_expression;
12mod binary_operation;
13mod binding_pattern;
14mod bits_literal;
15mod block;
16mod boolean_literal;
17mod boolean_query;
18mod break_expression;
19mod call_expression;
20mod cancel_expression;
21mod character_literal;
22mod constant_definition;
23mod continue_expression;
24mod defer_statement;
25mod definition;
26mod direct_unification;
27mod do_expression;
28mod document;
29mod documentation;
30mod element_unification;
31mod else_handler;
32mod end_expression;
33mod exit_expression;
34mod export_definition;
35mod expression;
36mod external_procedure_definition;
37mod fn_expression;
38mod for_statement;
39mod function_assignment;
40mod function_definition;
41mod function_head;
42mod glue_pattern;
43mod handled_expression;
44mod handler;
45mod handler_strategy;
46mod identifier;
47mod if_else_expression;
48mod import_definition;
49mod is_expression;
50mod keyword_reference;
51mod let_expression;
52mod let_statement;
53mod lookup;
54mod match_expression;
55mod module_access;
56mod mut_modifier;
57mod negative_pattern;
58mod not_query;
59mod number_literal;
60mod parenthesized_expression;
61mod parenthesized_pattern;
62mod parenthesized_query;
63mod pattern;
64mod pattern_conjunction;
65mod pattern_disjunction;
66mod pinned_pattern;
67mod procedure_definition;
68mod procedure_head;
69mod punctuated;
70mod query;
71mod query_alternative;
72mod query_conjunction;
73mod query_disjunction;
74mod query_implication;
75mod qy_expression;
76mod record_comprehension;
77mod record_literal;
78mod record_pattern;
79mod rest_pattern;
80mod resume_expression;
81mod return_expression;
82mod rule_definition;
83mod rule_head;
84mod set_comprehension;
85mod set_literal;
86mod set_pattern;
87mod statement;
88mod string_literal;
89mod struct_literal;
90mod struct_pattern;
91mod syntax_error;
92mod template;
93mod test_definition;
94mod tuple_pattern;
95mod type_definition;
96mod type_head;
97mod type_use;
98mod typeof_pattern;
99mod unary_operation;
100mod unit_literal;
101mod when_handler;
102mod while_statement;
103
104pub(crate) use amble::Amble;
105pub use application::Application;
106pub use array_comprehension::ArrayComprehension;
107pub use array_literal::{ArrayElement, ArrayLiteral};
108pub use array_pattern::ArrayPattern;
109pub use assert_statement::{AssertMessage, AssertStatement};
110pub use assignment_statement::{AssignmentStatement, AssignmentStrategy};
111pub use atom_literal::AtomLiteral;
112pub use become_expression::BecomeExpression;
113pub use binary_operation::{BinaryOperation, BinaryOperator};
114pub use binding_pattern::BindingPattern;
115pub use bits_literal::BitsLiteral;
116pub use block::Block;
117pub use boolean_literal::BooleanLiteral;
118pub use boolean_query::BooleanQuery;
119pub use break_expression::BreakExpression;
120pub use call_expression::CallExpression;
121pub use cancel_expression::CancelExpression;
122pub use character_literal::CharacterLiteral;
123pub use constant_definition::ConstantDefinition;
124pub use continue_expression::ContinueExpression;
125pub use defer_statement::DeferStatement;
126pub use definition::{Definition, DefinitionItem};
127pub use direct_unification::DirectUnification;
128pub use do_expression::{DoBody, DoExpression};
129pub use document::Document;
130pub use documentation::Documentation;
131pub use element_unification::ElementUnification;
132pub use else_handler::ElseHandler;
133pub use end_expression::EndExpression;
134pub use exit_expression::ExitExpression;
135pub use export_definition::ExportDefinition;
136pub use expression::Expression;
137pub use external_procedure_definition::ExternalProcedureDefinition;
138pub use fn_expression::FnExpression;
139pub use for_statement::ForStatement;
140pub use function_assignment::FunctionAssignment;
141pub use function_definition::FunctionDefinition;
142pub use function_head::FunctionHead;
143pub use glue_pattern::GluePattern;
144pub use handled_expression::HandledExpression;
145pub use handler::Handler;
146pub use handler_strategy::HandlerStrategy;
147pub use identifier::Identifier;
148pub use if_else_expression::{ElseBody, ElseClause, IfBody, IfElseExpression};
149pub use import_definition::ImportDefinition;
150pub use is_expression::IsExpression;
151pub use keyword_reference::{Keyword, KeywordReference};
152pub use let_expression::LetExpression;
153pub use let_statement::LetStatement;
154pub use lookup::Lookup;
155pub use match_expression::{MatchExpression, MatchExpressionCase, MatchExpressionCaseBody};
156pub use module_access::ModuleAccess;
157pub use mut_modifier::MutModifier;
158pub use negative_pattern::NegativePattern;
159pub use not_query::NotQuery;
160pub use number_literal::NumberLiteral;
161pub use parenthesized_expression::ParenthesizedExpression;
162pub use parenthesized_pattern::ParenthesizedPattern;
163pub use parenthesized_query::ParenthesizedQuery;
164pub use pattern::Pattern;
165pub use pattern_conjunction::PatternConjunction;
166pub use pattern_disjunction::PatternDisjunction;
167pub use pinned_pattern::PinnedPattern;
168pub use procedure_definition::ProcedureDefinition;
169pub use procedure_head::ProcedureHead;
170pub use punctuated::Punctuated;
171pub use query::Query;
172pub use query_alternative::QueryAlternative;
173pub use query_conjunction::QueryConjunction;
174pub use query_disjunction::QueryDisjunction;
175pub use query_implication::QueryImplication;
176pub use qy_expression::QyExpression;
177pub use record_comprehension::RecordComprehension;
178pub use record_literal::{RecordElement, RecordLiteral};
179pub use record_pattern::RecordPattern;
180pub use rest_pattern::RestPattern;
181pub use resume_expression::ResumeExpression;
182pub use return_expression::ReturnExpression;
183pub use rule_definition::RuleDefinition;
184pub use rule_head::RuleHead;
185pub use set_comprehension::SetComprehension;
186pub use set_literal::{SetElement, SetLiteral};
187pub use set_pattern::SetPattern;
188pub use statement::Statement;
189pub use string_literal::StringLiteral;
190pub use struct_literal::StructLiteral;
191pub use struct_pattern::StructPattern;
192pub use syntax_error::{ErrorKind, SyntaxError, SyntaxResult};
193pub use template::{Template, TemplateSegment};
194pub use test_definition::TestDefinition;
195pub use tuple_pattern::TuplePattern;
196pub use type_definition::TypeDefinition;
197pub use type_head::TypeHead;
198pub use type_use::TypeUse;
199pub use typeof_pattern::TypeofPattern;
200pub use unary_operation::{UnaryOperation, UnaryOperator};
201pub use unit_literal::UnitLiteral;
202pub use when_handler::WhenHandler;
203pub use while_statement::WhileStatement;