Merge pull request #1772 from triska/number_chars
FIXED: number_chars(N, "0' "), addressing #1580.
This commit is contained in:
@@ -834,19 +834,40 @@ impl MachineState {
|
|||||||
) -> CallResult {
|
) -> CallResult {
|
||||||
let nx = self.store(self.deref(self.registers[2]));
|
let nx = self.store(self.deref(self.registers[2]));
|
||||||
|
|
||||||
if let Some(c) = string.chars().last() {
|
let mut charcode_space = false;
|
||||||
if layout_char!(c) {
|
let mut cs = string.chars();
|
||||||
let (line_num, col_num) = string.chars().fold((0, 0), |(line_num, col_num), c| {
|
|
||||||
if new_line_char!(c) {
|
|
||||||
(1 + line_num, 0)
|
|
||||||
} else {
|
|
||||||
(line_num, col_num + 1)
|
|
||||||
}
|
|
||||||
});
|
|
||||||
let err = ParserError::UnexpectedChar(c, line_num, col_num);
|
|
||||||
let err = self.syntax_error(err);
|
|
||||||
|
|
||||||
return Err(self.error_form(err, stub_gen()));
|
loop {
|
||||||
|
let c = cs.next();
|
||||||
|
|
||||||
|
if c == None {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if c == Some('0')
|
||||||
|
&& cs.next() == Some('\'')
|
||||||
|
&& cs.next() == Some(' ')
|
||||||
|
&& cs.next() == None {
|
||||||
|
charcode_space = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if !charcode_space {
|
||||||
|
if let Some(c) = string.chars().last() {
|
||||||
|
if layout_char!(c) {
|
||||||
|
let (line_num, col_num) = string.chars().fold((0, 0), |(line_num, col_num), c| {
|
||||||
|
if new_line_char!(c) {
|
||||||
|
(1 + line_num, 0)
|
||||||
|
} else {
|
||||||
|
(line_num, col_num + 1)
|
||||||
|
}
|
||||||
|
});
|
||||||
|
let err = ParserError::UnexpectedChar(c, line_num, col_num);
|
||||||
|
let err = self.syntax_error(err);
|
||||||
|
|
||||||
|
return Err(self.error_form(err, stub_gen()));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user