Skip to content

Commit dcc8f4c

Browse files
committed
Make ast hashable, bump to v0.6.1
Signed-off-by: James Goppert <james.goppert@gmail.com>
1 parent 9036d0c commit dcc8f4c

File tree

5 files changed

+11
-11
lines changed

5 files changed

+11
-11
lines changed

Cargo.lock

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
name = "rumoca_parser"
33
authors = ["James Goppert", "Benjamin Perseghetti"]
44
description = "A Modelica translator with focus on Casadi, Sympy, JAX, and Collimator generation"
5-
version = "0.6.0"
5+
version = "0.6.1"
66
edition = "2021"
77
license = "Apache-2.0"
88

src/s0_lexer/tokens.rs

+4-4
Original file line numberDiff line numberDiff line change
@@ -180,11 +180,11 @@ pub enum Token {
180180
#[regex("\"[\\- _0-9a-zA-Z]*\"", quoted_string_callback)]
181181
String(String),
182182

183-
#[regex("[1-9][0-9]*", |lex| lex.slice().parse::<i64>().unwrap(), priority=3)]
184-
UnsignedInteger(i64),
183+
#[regex("[1-9][0-9]*", |lex| lex.slice().to_string(), priority=3)]
184+
UnsignedInteger(String),
185185

186-
#[regex(r"(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?", |lex| lex.slice().parse::<f64>().unwrap())]
187-
UnsignedReal(f64),
186+
#[regex(r"(?:0|[1-9]\d*)(?:\.\d+)?(?:[eE][+-]?\d+)?", |lex| lex.slice().to_string())]
187+
UnsignedReal(String),
188188

189189
#[token(r"(true|false)?", |lex| lex.slice().parse::<bool>().unwrap())]
190190
Boolean(bool),

src/s1_parser/ast.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use serde::{Deserialize, Serialize};
22

33
derive_alias! {
4-
#[derive(CommonTraits!)] = #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)];
4+
#[derive(CommonTraits!)] = #[derive(Clone, Debug, PartialEq, Serialize, Deserialize, Hash)];
55
}
66

77
#[derive(CommonTraits!, Default)]
@@ -279,8 +279,8 @@ pub enum BinaryOp {
279279

280280
#[derive(CommonTraits!)]
281281
pub enum Expression {
282-
UnsignedInteger(i64),
283-
UnsignedReal(f64),
282+
UnsignedInteger(String),
283+
UnsignedReal(String),
284284
Boolean(bool),
285285
//String(String),
286286
Ref {

src/s1_parser/modelica.lalrpop

+2-2
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ extern {
9999
// other lexical tokens
100100
"IDENT" => Token::Identifier(<String>),
101101
"STRING" => Token::String(<String>),
102-
"UNSIGNED-INTEGER" => Token::UnsignedInteger(<i64>),
103-
"UNSIGNED-REAL" => Token::UnsignedReal(<f64>),
102+
"UNSIGNED-INTEGER" => Token::UnsignedInteger(<String>),
103+
"UNSIGNED-REAL" => Token::UnsignedReal(<String>),
104104
"boolean" => Token::Boolean(<bool>),
105105
"(" => Token::LParen,
106106
")" => Token::RParen,

0 commit comments

Comments
 (0)