mt-lang 0.3.17 → 0.3.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/milk_tea/base.rb +1 -1
- data/lib/milk_tea/core/c_backend/expressions.rb +34 -23
- data/lib/milk_tea/core/c_backend/feature_detection.rb +25 -45
- data/lib/milk_tea/core/c_backend/type_collectors.rb +18 -30
- data/lib/milk_tea/core/c_backend/type_declaration.rb +0 -6
- data/lib/milk_tea/core/c_backend.rb +49 -39
- data/lib/milk_tea/core/compile_time.rb +98 -72
- data/lib/milk_tea/core/control_flow/builder.rb +2 -1
- data/lib/milk_tea/core/intrinsics.rb +7 -0
- data/lib/milk_tea/core/lexer.rb +46 -35
- data/lib/milk_tea/core/lowering/block.rb +9 -0
- data/lib/milk_tea/core/lowering/calls.rb +2 -0
- data/lib/milk_tea/core/lowering/declarations.rb +1 -1
- data/lib/milk_tea/core/lowering/functions.rb +11 -8
- data/lib/milk_tea/core/lowering/resolve.rb +11 -4
- data/lib/milk_tea/core/lowering/scans.rb +13 -18
- data/lib/milk_tea/core/module_binder.rb +19 -15
- data/lib/milk_tea/core/module_loader.rb +212 -59
- data/lib/milk_tea/core/module_path_resolver.rb +8 -7
- data/lib/milk_tea/core/parser/declarations.rb +43 -19
- data/lib/milk_tea/core/parser/expressions.rb +5 -8
- data/lib/milk_tea/core/parser/statements.rb +5 -5
- data/lib/milk_tea/core/parser.rb +26 -0
- data/lib/milk_tea/core/semantic_analyzer/calls.rb +24 -31
- data/lib/milk_tea/core/semantic_analyzer/expressions.rb +20 -23
- data/lib/milk_tea/core/semantic_analyzer/name_resolution.rb +146 -92
- data/lib/milk_tea/core/semantic_analyzer/statements.rb +19 -41
- data/lib/milk_tea/core/semantic_analyzer.rb +56 -37
- data/lib/milk_tea/core/types.rb +12 -17
- data/lib/milk_tea/lsp/diagnostics.rb +13 -0
- data/lib/milk_tea/lsp/server/semantic_tokens.rb +6 -0
- data/lib/milk_tea/tooling/cli/commands/bindgen.rb +11 -0
- data/lib/milk_tea/tooling/cli/commands/build.rb +37 -0
- data/lib/milk_tea/tooling/cli/commands/cache.rb +46 -0
- data/lib/milk_tea/tooling/cli/commands/check.rb +106 -0
- data/lib/milk_tea/tooling/cli/commands/command_base.rb +8 -0
- data/lib/milk_tea/tooling/cli/commands/completions.rb +48 -0
- data/lib/milk_tea/tooling/cli/commands/dap.rb +58 -0
- data/lib/milk_tea/tooling/cli/commands/debug.rb +77 -0
- data/lib/milk_tea/tooling/cli/commands/deps.rb +17 -0
- data/lib/milk_tea/tooling/cli/commands/docs.rb +58 -0
- data/lib/milk_tea/tooling/cli/commands/emit_c.rb +64 -0
- data/lib/milk_tea/tooling/cli/commands/format.rb +199 -0
- data/lib/milk_tea/tooling/cli/commands/lex.rb +46 -0
- data/lib/milk_tea/tooling/cli/commands/lint.rb +248 -0
- data/lib/milk_tea/tooling/cli/commands/lower.rb +50 -0
- data/lib/milk_tea/tooling/cli/commands/lsp.rb +43 -0
- data/lib/milk_tea/tooling/cli/commands/new.rb +26 -0
- data/lib/milk_tea/tooling/cli/commands/parse.rb +51 -0
- data/lib/milk_tea/tooling/cli/commands/run.rb +99 -0
- data/lib/milk_tea/tooling/cli/commands/snapshot.rb +117 -0
- data/lib/milk_tea/tooling/cli/commands/test.rb +557 -0
- data/lib/milk_tea/tooling/cli/commands/toolchain.rb +16 -0
- data/lib/milk_tea/tooling/cli.rb +101 -1893
- data/lib/milk_tea/tooling/sexpr_dumper.rb +7 -7
- metadata +24 -2
|
@@ -72,11 +72,15 @@ module MilkTea
|
|
|
72
72
|
# ── Token serialisation ───────────────────────────────────────────
|
|
73
73
|
|
|
74
74
|
def emit_token(token, buf)
|
|
75
|
-
buf << "(token :type " <<
|
|
75
|
+
buf << "(token :type :" << token.type.to_s.tr("_", "-")
|
|
76
76
|
buf << " :lexeme "
|
|
77
77
|
emit_string(token.lexeme, buf)
|
|
78
78
|
buf << " :literal "
|
|
79
|
-
|
|
79
|
+
if token.type == :float
|
|
80
|
+
buf << token.lexeme
|
|
81
|
+
else
|
|
82
|
+
emit_value(token.literal, buf)
|
|
83
|
+
end
|
|
80
84
|
buf << " :line " << token.line.to_s
|
|
81
85
|
buf << " :column " << token.column.to_s
|
|
82
86
|
buf << " :start_offset " << token.start_offset.to_s
|
|
@@ -84,10 +88,6 @@ module MilkTea
|
|
|
84
88
|
buf << ")"
|
|
85
89
|
end
|
|
86
90
|
|
|
87
|
-
def emit_token_type(sym)
|
|
88
|
-
":" + sym.to_s.tr("_", "-")
|
|
89
|
-
end
|
|
90
|
-
|
|
91
91
|
# ── Types serialisation ───────────────────────────────────────────
|
|
92
92
|
|
|
93
93
|
TYPES_SHORT_NAMES = {
|
|
@@ -337,7 +337,7 @@ module MilkTea
|
|
|
337
337
|
end
|
|
338
338
|
|
|
339
339
|
def format_float(value)
|
|
340
|
-
s = sprintf("
|
|
340
|
+
s = sprintf("%g", value)
|
|
341
341
|
s.include?(".") || s.include?("e") ? s : s + ".0"
|
|
342
342
|
end
|
|
343
343
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mt-lang
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.3.
|
|
4
|
+
version: 0.3.22
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Long (Teefan) Tran
|
|
@@ -362,6 +362,28 @@ files:
|
|
|
362
362
|
- lib/milk_tea/tooling/build.rb
|
|
363
363
|
- lib/milk_tea/tooling/build_cache.rb
|
|
364
364
|
- lib/milk_tea/tooling/cli.rb
|
|
365
|
+
- lib/milk_tea/tooling/cli/commands/bindgen.rb
|
|
366
|
+
- lib/milk_tea/tooling/cli/commands/build.rb
|
|
367
|
+
- lib/milk_tea/tooling/cli/commands/cache.rb
|
|
368
|
+
- lib/milk_tea/tooling/cli/commands/check.rb
|
|
369
|
+
- lib/milk_tea/tooling/cli/commands/command_base.rb
|
|
370
|
+
- lib/milk_tea/tooling/cli/commands/completions.rb
|
|
371
|
+
- lib/milk_tea/tooling/cli/commands/dap.rb
|
|
372
|
+
- lib/milk_tea/tooling/cli/commands/debug.rb
|
|
373
|
+
- lib/milk_tea/tooling/cli/commands/deps.rb
|
|
374
|
+
- lib/milk_tea/tooling/cli/commands/docs.rb
|
|
375
|
+
- lib/milk_tea/tooling/cli/commands/emit_c.rb
|
|
376
|
+
- lib/milk_tea/tooling/cli/commands/format.rb
|
|
377
|
+
- lib/milk_tea/tooling/cli/commands/lex.rb
|
|
378
|
+
- lib/milk_tea/tooling/cli/commands/lint.rb
|
|
379
|
+
- lib/milk_tea/tooling/cli/commands/lower.rb
|
|
380
|
+
- lib/milk_tea/tooling/cli/commands/lsp.rb
|
|
381
|
+
- lib/milk_tea/tooling/cli/commands/new.rb
|
|
382
|
+
- lib/milk_tea/tooling/cli/commands/parse.rb
|
|
383
|
+
- lib/milk_tea/tooling/cli/commands/run.rb
|
|
384
|
+
- lib/milk_tea/tooling/cli/commands/snapshot.rb
|
|
385
|
+
- lib/milk_tea/tooling/cli/commands/test.rb
|
|
386
|
+
- lib/milk_tea/tooling/cli/commands/toolchain.rb
|
|
365
387
|
- lib/milk_tea/tooling/cst_formatter.rb
|
|
366
388
|
- lib/milk_tea/tooling/debug_info_formatter.rb
|
|
367
389
|
- lib/milk_tea/tooling/debug_map.rb
|
|
@@ -603,7 +625,7 @@ metadata:
|
|
|
603
625
|
homepage_uri: https://teefan.github.io/mt-lang/
|
|
604
626
|
source_code_uri: https://github.com/teefan/mt-lang
|
|
605
627
|
post_install_message: |
|
|
606
|
-
Milk Tea 0.3.
|
|
628
|
+
Milk Tea 0.3.22 installed!
|
|
607
629
|
|
|
608
630
|
System requirements:
|
|
609
631
|
- A C compiler (gcc or clang) must be available on PATH
|