2019-11-27 09:18:17 -05:00
|
|
|
// TAME in Rust (TAMER)
|
|
|
|
//
|
2021-07-22 15:00:15 -04:00
|
|
|
// Copyright (C) 2014-2021 Ryan Specialty Group, LLC.
|
2020-03-06 11:05:18 -05:00
|
|
|
//
|
|
|
|
// This file is part of TAME.
|
2019-11-27 09:18:17 -05:00
|
|
|
//
|
|
|
|
// This program is free software: you can redistribute it and/or modify
|
|
|
|
// it under the terms of the GNU General Public License as published by
|
|
|
|
// the Free Software Foundation, either version 3 of the License, or
|
|
|
|
// (at your option) any later version.
|
|
|
|
//
|
|
|
|
// This program is distributed in the hope that it will be useful,
|
|
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
// GNU General Public License for more details.
|
|
|
|
//
|
|
|
|
// You should have received a copy of the GNU General Public License
|
|
|
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
2019-12-06 15:03:29 -05:00
|
|
|
//! An incremental rewrite of TAME in Rust.
|
|
|
|
|
2021-06-21 13:10:00 -04:00
|
|
|
// We build docs for private items
|
|
|
|
#![allow(rustdoc::private_intra_doc_links)]
|
|
|
|
|
2020-01-12 22:59:16 -05:00
|
|
|
pub mod global;
|
2020-03-24 14:14:05 -04:00
|
|
|
|
2020-04-29 00:48:07 -04:00
|
|
|
#[macro_use]
|
|
|
|
extern crate lazy_static;
|
|
|
|
|
2020-03-24 14:14:05 -04:00
|
|
|
#[macro_use]
|
|
|
|
pub mod sym;
|
|
|
|
|
tamer: Initial frontend concept
This introduces the beginnings of frontends for TAMER, gated behind a
`wip-features` flag.
This will be introduced in stages:
1. Replace the existing copy with a parser-based copy (echo back out the
tokens), when the flag is on.
2. Begin to parse portions of the source, augmenting the output xmlo (xmli
at the moment). The XSLT-based compiler will be modified to skip
compilation steps as necessary.
As portions of the compilation are implemented in TAMER, they'll be placed
behind their own feature flags and stabalized, which will incrementally
remove the compilation steps from the XSLT-based system. The result should
be substantial incremental performance improvements.
Short-term, the priorities are for loading identifiers into an IR
are (though the order may change):
1. Echo
2. Imports
3. Extern declarations.
4. Simple identifiers (e.g. param, const, template, etc).
5. Classifications.
6. Documentation expressions.
7. Calculation expressions.
8. Template applications.
9. Template definitions.
10. Inline templates.
After each of those are done, the resulting xmlo (xmli) will have fully
reconstructed the source document from the IR produced during parsing.
2021-07-23 22:24:08 -04:00
|
|
|
#[cfg(feature = "wip-frontends")]
|
|
|
|
pub mod frontend;
|
|
|
|
|
2020-04-06 16:13:32 -04:00
|
|
|
pub mod fs;
|
2020-01-09 10:55:55 -05:00
|
|
|
pub mod ir;
|
2019-11-27 09:18:17 -05:00
|
|
|
pub mod ld;
|
2020-01-09 10:55:55 -05:00
|
|
|
pub mod obj;
|
2020-02-13 11:50:18 -05:00
|
|
|
|
|
|
|
#[cfg(test)]
|
|
|
|
pub mod test;
|