aboutsummaryrefslogtreecommitdiffstats
path: root/src/compiler.rs
diff options
context:
space:
mode:
authorEdvard Thörnros <edvard.thornros@gmail.com>2021-01-12 21:14:25 +0100
committerEdvard Thörnros <edvard.thornros@gmail.com>2021-01-12 21:14:25 +0100
commit2bed29253c2cf79b125b57324b48c0a0f917365c (patch)
treeb1279d8688ad439875ca627b6e33aaed918f1570 /src/compiler.rs
parent6718b634844a7db28ef01374701d1f77c4fe1716 (diff)
downloadsylt-2bed29253c2cf79b125b57324b48c0a0f917365c.tar.gz
Reference counted strings
Diffstat (limited to 'src/compiler.rs')
-rw-r--r--src/compiler.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/compiler.rs b/src/compiler.rs
index df094ae..d3fc1fd 100644
--- a/src/compiler.rs
+++ b/src/compiler.rs
@@ -1,4 +1,5 @@
use std::path::{Path, PathBuf};
+use std::rc::Rc;
use std::convert::TryFrom;
use crate::tokenizer::{Token, TokenStream};
@@ -225,7 +226,7 @@ impl Compiler {
Token::Float(f) => { Value::Float(f) },
Token::Int(i) => { Value::Int(i) }
Token::Bool(b) => { Value::Bool(b) }
- Token::String(s) => { Value::String(s.clone()) }
+ Token::String(s) => { Value::String(Rc::from(s)) }
_ => { error!(self, "Cannot parse value."); Value::Bool(false) }
};
block.add(Op::Constant(value), self.line());