dedupe literal parsers

This commit is contained in:
Aleksey Kladov 2018-12-27 14:42:46 +03:00
parent dbf03b674e
commit 73ded3c63c
10 changed files with 220 additions and 374 deletions

View file

@ -2,7 +2,7 @@
use crate::{
ast::{self, AstNode},
string_lexing::{self, CharComponentKind},
string_lexing::{self, StringComponentKind},
TextRange,
validation::char,
yellow::{
@ -38,11 +38,11 @@ pub(super) fn validate_byte_node(node: ast::Byte, errors: &mut Vec<SyntaxError>)
pub(super) fn validate_byte_component(
text: &str,
kind: CharComponentKind,
kind: StringComponentKind,
range: TextRange,
errors: &mut Vec<SyntaxError>,
) {
use self::CharComponentKind::*;
use self::StringComponentKind::*;
match kind {
AsciiEscape => validate_byte_escape(text, range, errors),
AsciiCodeEscape => validate_byte_code_escape(text, range, errors),
@ -63,6 +63,7 @@ pub(super) fn validate_byte_component(
errors.push(SyntaxError::new(ByteOutOfRange, range));
}
}
IgnoreNewline => { /* always valid */ }
}
}