etanol_compiler/utils/
methods.rs1use crate::utils::{Pointer, Token};
2
3pub fn readString(pointer: &mut Pointer) -> String {
4 let startString = pointer.toEqual("Punctuation", "\"");
5 if !startString {
6 pointer.error("Expected '\"'");
7 }
8
9 let mut value = String::new();
10
11 loop {
12 if pointer.toEqual("Punctuation", "\"") {
13 break;
14 }
15
16 match pointer.token.clone() {
17 None | Some(Token::EOF) => {
18 pointer.error("Expected a '\"'");
19 }
20 Some(data) => {
21 value.push_str(&data.tokenValue());
22
23 pointer.take(&data.tokenType());
24 }
25 }
26 }
27
28 value
29}