aboutsummaryrefslogtreecommitdiff
path: root/codegen/src/main.rs
diff options
context:
space:
mode:
authorJoe Wilm <joe@jwilm.com>2016-09-17 15:51:45 -0700
committerJoe Wilm <joe@jwilm.com>2016-09-17 17:03:20 -0700
commitcffdb6de59ceb3fd9983a1c19476e5109da8db97 (patch)
tree26603abf607d21eefd3b9a6ac79a36dab63b5781 /codegen/src/main.rs
parent930f8cc30a5bc4943c1b56e18cf1a3f8bb00bc2a (diff)
downloadr-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.rs15
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");
}