diff options
author | Joe Wilm <joe@jwilm.com> | 2016-09-17 15:51:45 -0700 |
---|---|---|
committer | Joe Wilm <joe@jwilm.com> | 2016-09-17 17:03:20 -0700 |
commit | cffdb6de59ceb3fd9983a1c19476e5109da8db97 (patch) | |
tree | 26603abf607d21eefd3b9a6ac79a36dab63b5781 /codegen/src/main.rs | |
parent | 930f8cc30a5bc4943c1b56e18cf1a3f8bb00bc2a (diff) | |
download | r-alacritty-vte-cffdb6de59ceb3fd9983a1c19476e5109da8db97.tar.gz r-alacritty-vte-cffdb6de59ceb3fd9983a1c19476e5109da8db97.tar.bz2 r-alacritty-vte-cffdb6de59ceb3fd9983a1c19476e5109da8db97.zip |
Add support for UTF-8
This adds a table-driven UTF-8 parser which only has a single branch for
the entire parser. UTF-8 support is essentially bolted onto the VTE
parser. Not the most elegant, but it does prevent the transition tables
from blowing up.
Instead of refactoring the syntax extension to handle both table
definitions, I've opted to copy/paste now for both simplicities sake and
because I can't see a clear path to a minimal shared solution.
Diffstat (limited to 'codegen/src/main.rs')
-rw-r--r-- | codegen/src/main.rs | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/codegen/src/main.rs b/codegen/src/main.rs index 64bddd9..5f8d153 100644 --- a/codegen/src/main.rs +++ b/codegen/src/main.rs @@ -1,18 +1,23 @@ +#![allow(dead_code)] extern crate syntex; extern crate syntex_syntax; mod ext; -#[path="../../src/definitions.rs"] -pub mod definitions; - use std::path::Path; fn main() { + // Expand VT parser state table + let mut registry = syntex::Registry::new(); + ext::vt::register(&mut registry); let src = &Path::new("../src/table.rs.in"); let dst = &Path::new("../src/table.rs"); + registry.expand("vt_state_table", src, dst).expect("expand vt_stable_table ok"); + // Expand UTF8 parser state table let mut registry = syntex::Registry::new(); - ext::register(&mut registry); - registry.expand("state_table", src, dst).expect("expand stable_table ok"); + ext::utf8::register(&mut registry); + let src = &Path::new("../src/utf8/table.rs.in"); + let dst = &Path::new("../src/utf8/table.rs"); + registry.expand("utf8_state_table", src, dst).expect("expand utf8_stable_table ok"); } |