From dba769e13ca5029643c6068e53fa34ae0fea8421 Mon Sep 17 00:00:00 2001 From: Ben Bridle Date: Fri, 28 Feb 2025 13:23:20 +1300 Subject: Implement string literals String literals are treated as integers. If a string is passed as an integer argument to a packed binary literal, a new instance of the packed binary literal is invoked for every character in the string, with each character being passed to the packed binary literal as a Unicode character value. --- src/tokens/semantic.rs | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/tokens/semantic.rs') diff --git a/src/tokens/semantic.rs b/src/tokens/semantic.rs index d61ad8e..225cd6b 100644 --- a/src/tokens/semantic.rs +++ b/src/tokens/semantic.rs @@ -43,6 +43,7 @@ pub enum Value { pub enum Integer { Literal(TrackedInteger), + String(TrackedString), Expression(Expression), LabelReference(Tracked), } @@ -150,6 +151,8 @@ impl SemanticProgram { indent!(indent => "LITERAL {value}"), Integer::Expression(expr) => indent!(indent => "EXPRESSION [{expr:?}]"), + Integer::String(string) => + indent!(indent => "STRING '{string}'"), Integer::LabelReference(name) => indent!(indent => "LABEL REFERENCE '{name}'"), } -- cgit v1.2.3-70-g09d2