aboutsummaryrefslogtreecommitdiffstats
path: root/src/servo/parser/html_lexer.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/servo/parser/html_lexer.rs')
-rw-r--r--src/servo/parser/html_lexer.rs20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/servo/parser/html_lexer.rs b/src/servo/parser/html_lexer.rs
index 662beebda99..ca95e1177fe 100644
--- a/src/servo/parser/html_lexer.rs
+++ b/src/servo/parser/html_lexer.rs
@@ -5,7 +5,7 @@ import str::from_bytes;
import vec::push;
import lexer_util::*;
import resource::resource_task;
-import resource_task::{ResourceTask};
+import resource_task::{ResourceTask, ProgressMsg, Load};
import std::net::url::url;
enum Token {
@@ -166,8 +166,16 @@ impl html_methods of html_methods for HtmlLexer {
}
}
-fn lexer(reader: io::reader, state : ParseState) -> HtmlLexer {
- ret { input_state: {mut lookahead: none, reader: reader}, mut parser_state: state };
+fn lexer(+input_port: port<resource_task::ProgressMsg>, state : ParseState) -> HtmlLexer {
+ ret {
+ input_state: {
+ mut lookahead: none,
+ mut buffer: ~[],
+ input_port: input_port,
+ mut eof: false
+ },
+ mut parser_state: state
+ };
}
#[warn(no_non_implicitly_copyable_typarams)]
@@ -177,10 +185,10 @@ fn spawn_html_lexer_task(-url: url, resource_task: ResourceTask) -> port<Token>
task::spawn(|| {
assert url.path.ends_with(~".html");
- let file_data = io::read_whole_file(url.path).get();
- let reader = io::bytes_reader(file_data);
+ let input_port = port();
+ resource_task.send(Load(url, input_port.chan()));
- let lexer = lexer(reader, NormalHtml);
+ let lexer = lexer(input_port, NormalHtml);
loop {
let token = lexer.parse_html();