[package]
edition = "2024"
rust-version = "1.96"
name = "mech-syntax"
version = "0.3.0"
authors = ["Corey Montella <corey@mech-lang.org>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A toolchain for compiling textual syntax into Mech blocks."
homepage = "https://mech-lang.org"
documentation = "http://docs.mech-lang.org"
readme = "README.md"
keywords = [
"mech",
"language",
"programming",
"parser",
"compiler",
]
categories = [
"no-std",
"science::robotics",
"science",
"parser-implementations",
]
license = "Apache-2.0"
repository = "https://github.com/mech-lang/syntax"
[badges.gitlab]
branch = "main"
repository = "mech-lang/syntax"
[badges.maintenance]
status = "actively-developed"
[features]
atom = ["mech-core/atom"]
base = [
"baselib",
"pretty_print",
"serde",
"compiler",
"program",
"statements_default",
"subscript_default",
"formatter",
"mechdown",
"mika",
"mech-core/base",
]
baselib = [
"bool",
"string",
"f64",
"c64",
"r64",
"set",
"map",
"table",
"tuple",
"record",
"atom",
"enum",
"row_vectord",
"vectord",
"matrixd",
"subscript_range",
"logical_indexing",
"subscript_formula",
"variable_define",
"variable_assign",
"kind_define",
"kind_annotation",
"variables",
"functions",
"formulas",
"mech-core/baselib",
]
bool = ["mech-core/bool"]
c64 = [
"complex",
"mech-core/c64",
]
compiler = ["mech-core/compiler"]
complex = [
"f64",
"numbers",
"mech-core/complex",
]
default = [
"baselib",
"pretty_print",
"serde",
"compiler",
"program",
"u8",
"u16",
"u32",
"u64",
"u128",
"i8",
"i16",
"i32",
"i64",
"i128",
"f32",
"f64",
"c64",
"r64",
"statements_default",
"subscript_default",
"formatter",
"mechdown",
"mika",
"mech-core/default",
]
dot_indexing = [
"subscript",
"mech-core/dot_indexing",
]
dynamic_matrix = [
"matrixd",
"vectord",
"row_vectord",
"mech-core/dynamic_matrix",
]
enum = ["mech-core/enum"]
f32 = [
"floats",
"mech-core/f32",
]
f64 = [
"floats",
"mech-core/f64",
]
fixed_matrix = [
"matrix4",
"matrix3",
"matrix2",
"matrix1",
"matrix2x3",
"matrix3x2",
"mech-core/fixed_matrix",
]
fixed_row_vector = [
"row_vector4",
"row_vector3",
"row_vector2",
"mech-core/fixed_row_vector",
]
fixed_vector = [
"vector4",
"vector3",
"vector2",
"mech-core/fixed_vector",
]
floats = [
"numbers",
"mech-core/floats",
]
formatter = []
formulas = ["mech-core/formulas"]
functions = [
"symbol_table",
"mech-core/functions",
]
i128 = [
"signed_ints",
"mech-core/i128",
]
i16 = [
"signed_ints",
"mech-core/i16",
]
i32 = [
"signed_ints",
"mech-core/i32",
]
i64 = [
"signed_ints",
"mech-core/i64",
]
i8 = [
"signed_ints",
"mech-core/i8",
]
kind_annotation = [
"functions",
"mech-core/kind_annotation",
]
kind_define = [
"kind_annotation",
"statements",
"mech-core/kind_define",
]
logical_indexing = [
"subscript",
"vectord",
"bool",
"mech-core/logical_indexing",
]
map = ["mech-core/map"]
matrix = [
"mech-core/matrix",
"matrix_horzcat",
"matrix_vertcat",
]
matrix1 = [
"matrix",
"mech-core/matrix1",
]
matrix2 = [
"matrix",
"mech-core/matrix2",
]
matrix2x3 = [
"matrix",
"mech-core/matrix2x3",
]
matrix3 = [
"matrix",
"mech-core/matrix3",
]
matrix3x2 = [
"matrix",
"mech-core/matrix3x2",
]
matrix4 = [
"matrix",
"mech-core/matrix4",
]
matrix_horzcat = ["matrix"]
matrix_vertcat = ["matrix"]
matrixd = [
"matrix",
"mech-core/matrixd",
]
mechdown = []
mika = ["mech-core/mika"]
no_std = ["mech-core/no_std"]
numbers = ["mech-core/numbers"]
pretty_print = ["mech-core/pretty_print"]
program = ["mech-core/program"]
r64 = [
"rational",
"mech-core/r64",
]
rational = [
"i64",
"numbers",
"mech-core/rational",
]
record = [
"tuple",
"kind_annotation",
"mech-core/record",
]
row_vector2 = [
"matrix",
"mech-core/row_vector2",
]
row_vector3 = [
"matrix",
"mech-core/row_vector3",
]
row_vector4 = [
"matrix",
"mech-core/row_vector4",
]
row_vectord = [
"matrix",
"mech-core/row_vectord",
]
serde = ["mech-core/serde"]
set = ["mech-core/set"]
signed_ints = [
"numbers",
"mech-core/signed_ints",
]
statements = ["mech-core/statements"]
statements_default = [
"variable_assign",
"variable_define",
"kind_define",
]
stdlib = [
"bool",
"string",
"u8",
"u16",
"u32",
"u64",
"u128",
"i8",
"i16",
"i32",
"i64",
"i128",
"f32",
"f64",
"c64",
"r64",
"set",
"map",
"table",
"tuple",
"record",
"atom",
"matrix1",
"matrix2",
"matrix3",
"matrix4",
"matrix2x3",
"matrix3x2",
"row_vector2",
"row_vector3",
"row_vector4",
"vector2",
"vector3",
"vector4",
"row_vectord",
"vectord",
"matrixd",
"subscript_range",
"logical_indexing",
"swizzle",
"subscript_formula",
"dot_indexing",
"variable_define",
"variable_assign",
"kind_define",
"kind_annotation",
"variables",
"functions",
"formulas",
]
string = ["mech-core/string"]
subscript = ["mech-core/subscript"]
subscript_default = [
"subscript_slice",
"subscript_range",
"logical_indexing",
"swizzle",
"subscript_formula",
"dot_indexing",
]
subscript_formula = [
"subscript_slice",
"formulas",
"mech-core/subscript_formula",
]
subscript_range = [
"subscript_slice",
"vectord",
"mech-core/subscript_range",
]
subscript_slice = [
"subscript",
"vectord",
"mech-core/subscript_slice",
]
swizzle = [
"subscript",
"mech-core/swizzle",
]
symbol_table = ["mech-core/symbol_table"]
table = [
"kind_annotation",
"vectord",
"record",
"mech-core/table",
]
tuple = ["mech-core/tuple"]
u128 = [
"unsigned_ints",
"mech-core/u128",
]
u16 = [
"unsigned_ints",
"mech-core/u16",
]
u32 = [
"unsigned_ints",
"mech-core/u32",
]
u64 = [
"unsigned_ints",
"mech-core/u64",
]
u8 = [
"unsigned_ints",
"mech-core/u8",
]
unsigned_ints = [
"numbers",
"mech-core/unsigned_ints",
]
variable_assign = [
"statements",
"mech-core/variable_assign",
]
variable_define = [
"statements",
"functions",
"mech-core/variable_define",
]
variables = [
"variable_define",
"symbol_table",
"mech-core/variables",
]
vector2 = [
"matrix",
"mech-core/vector2",
]
vector3 = [
"matrix",
"mech-core/vector3",
]
vector4 = [
"matrix",
"mech-core/vector4",
]
vectord = [
"matrix",
"mech-core/vectord",
]
[lib]
name = "mech_syntax"
path = "src/lib.rs"
[[bench]]
name = "interpreter"
path = "benches/interpreter.rs"
[dependencies.colored]
version = "3.1.1"
[dependencies.indexmap]
version = "2.13.0"
[dependencies.mech-core]
version = "0.3.0"
default-features = false
[dependencies.nom]
version = "7.1.3"
[dependencies.nom-unicode]
version = "0.4.0"
[dependencies.num-traits]
version = "0.2.19"
features = ["libm"]
default-features = false
[dependencies.paste]
version = "1.0.15"
[dependencies.rlibc]
version = "=1.0"
optional = true
[dependencies.serde]
version = "1.0.228"
[dependencies.serde_derive]
version = "1.0.228"
[dependencies.tabled]
version = "0.20.0"
[dependencies.unicode-segmentation]
version = "1.12.0"