Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
d53cbe5
unilang_parser
wanguardd Jul 20, 2025
c2549b2
refactor(parser): Unify data structures to use official instruction t…
wanguardd Jul 20, 2025
15c5b45
unilang_parser
wanguardd Jul 20, 2025
2355a53
unilang_parser
wanguardd Jul 20, 2025
3ef28cf
unilang_parser
wanguardd Jul 20, 2025
b990f0c
unilang_parser
wanguardd Jul 20, 2025
5c6c93d
wip
wanguardd Jul 20, 2025
b2f9ac6
refactor(parser): Integrate deeply with strs_tools for tokenization a…
wanguardd Jul 20, 2025
976cf65
chore(planning): Analyze test coverage and create Test Matrix for spe…
wanguardd Jul 20, 2025
a886098
test(parser): Implement full spec adherence test suite and fix uncove…
wanguardd Jul 20, 2025
cfea929
refactor(unilang_instruction_parser): Revert parser_engine to monolit…
wanguardd Jul 20, 2025
7489643
unilang_parser
wanguardd Jul 20, 2025
578a45a
unilang_parser
wanguardd Jul 20, 2025
b30e4b7
fix(strs_tools): Resolve stuck test module/core/strs_tools/tests/smok…
wanguardd Jul 20, 2025
3c72a9f
chore(unilang_instruction_parser): Finalize task and verify all requi…
wanguardd Jul 20, 2025
31b6bad
unilang_parser
wanguardd Jul 20, 2025
8b6fdeb
publishing
Wandalen Jul 20, 2025
3a5a4c5
data_type-v0.14.0
Wandalen Jul 20, 2025
310cb11
pth-v0.24.0
Wandalen Jul 20, 2025
7d2f545
process_tools-v0.14.0
Wandalen Jul 20, 2025
7ce6e7d
crates_tools-v0.16.0
Wandalen Jul 20, 2025
37c3207
chore(unilang_instruction_parser): Finalize task and verify all requi…
wanguardd Jul 20, 2025
7d5d9db
chore(task): Complete task and update status
wanguardd Jul 20, 2025
d13db2f
willbe-v0.23.0
Wandalen Jul 20, 2025
cdc392c
strs_tools-v0.20.0
Wandalen Jul 20, 2025
942d94b
fix(unilang_instruction_parser, strs_tools): Resolve compiler warnings
wanguardd Jul 20, 2025
c5c2caa
chore(task): Finalize warning resolution task
wanguardd Jul 20, 2025
13faf0d
task
wanguardd Jul 20, 2025
e363b46
Merge branch 'cleaning_5' of github.com:Wandalen/wTools into cleaning_5
wanguardd Jul 20, 2025
43282d7
refactor(unilang_parser): Rename crate directory and Cargo.toml
wanguardd Jul 20, 2025
28d8a26
refactor(unilang_parser): Update Cargo.toml dependencies
wanguardd Jul 20, 2025
88a841c
refactor(unilang_parser): Update source code references and finalize …
wanguardd Jul 20, 2025
9fc7881
refactor(unilang_parser): Relocate to module/alias and update path re…
wanguardd Jul 20, 2025
ec34c29
feat(unilang_instruction_parser): Create alias crate for unilang_parser
wanguardd Jul 20, 2025
3bd4815
chore(unilang_parser): Finalize alias conversion and cleanup
wanguardd Jul 20, 2025
b46fa6f
fix(debug): Resolve git mv 'source directory is empty' error
wanguardd Jul 20, 2025
4ae2140
chore(unilang_parser): Finalize alias conversion and cleanup
wanguardd Jul 20, 2025
774cad8
wip
wanguardd Jul 21, 2025
9a6a9ea
fix
wanguardd Jul 22, 2025
97e3131
switch
wanguardd Jul 22, 2025
f97d15e
unilang_instruction_praser
wanguardd Jul 23, 2025
2b18108
strs_tools-v0.21.0
Wandalen Jul 23, 2025
44237c6
unilang_parser-v0.2.0
Wandalen Jul 23, 2025
e7eb72c
unilang_instruction_parser license
Wandalen Jul 23, 2025
d4ff259
unilang_instruction_parser
wanguardd Jul 23, 2025
ae70c02
Merge branch 'cleaning_5' of github.com:Wandalen/wTools into cleaning_5
wanguardd Jul 23, 2025
b48729f
unilang_instruction_parser-v0.2.0
Wandalen Jul 23, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
118 changes: 72 additions & 46 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,39 @@
resolver = "2"
members = [
"module/alias/*",
"module/blank/*",
"module/core/*",
"module/move/*",
"module/test/*",
"step",
"module/move/unilang/tests/dynamic_libs/dummy_lib",
]
exclude = [
"-*",
"module/move/_video_experiment",
"module/move/cargo_will",
"module/alias/cargo_will",
"module/blank/*",
"module/postponed/*",
"module/step/*",
"module/move/unitore",
"module/move/gspread",
"module/move/optimization_tools",
"module/move/refiner",
"module/move/wplot",
"module/move/plot_interface",
"module/move/unilang",
"module/core/program_tools",
"module/move/graphs_tools",
"module/alias/fundamental_data_type",
"module/alias/proc_macro_tools",
"module/alias/multilayer",
"module/alias/instance_of",
"module/alias/werror",
"module/core/wtools",
"module/alias/wproc_macro",
"module/alias/wtest_basic",
"module/alias/wtest",
"module/core/meta_tools",
"module/core/for_each",
"module/core/reflect_tools",
"module/core/format_tools",
"step",
]
# default-members = [ "module/core/wtools" ]

Expand Down Expand Up @@ -79,26 +101,29 @@ path = "module/alias/std_tools"
version = "~0.1.4"
path = "module/alias/std_x"

[workspace.dependencies.unilang_parser]
version = "~0.2.0"
path = "module/move/unilang_parser"

## data_type

[workspace.dependencies.data_type]
version = "~0.13.0"
version = "~0.14.0"
path = "module/core/data_type"
default-features = false

# [workspace.dependencies.type_constructor_meta]
# version = "~0.2.0"
# path = "module/core/type_constructor_meta"
# default-features = false
#
# [workspace.dependencies.type_constructor_make_meta]
# version = "~0.2.0"
# path = "module/core/type_constructor_make_meta"
#
# [workspace.dependencies.type_constructor_derive_pair_meta]
# version = "~0.1.0"
# path = "module/core/type_constructor_derive_pair_meta"
[workspace.dependencies.type_constructor_meta]
version = "~0.2.0"
path = "module/core/type_constructor_meta"
default-features = false

[workspace.dependencies.type_constructor_make_meta]
version = "~0.2.0"
path = "module/core/type_constructor_make_meta"

[workspace.dependencies.type_constructor_derive_pair_meta]
version = "~0.1.0"
path = "module/core/type_constructor_derive_pair_meta"

[workspace.dependencies.interval_adapter]
version = "~0.29.0"
Expand Down Expand Up @@ -158,10 +183,10 @@ default-features = false
# features = [ "enabled" ]
# # xxx : remove features, maybe

# [workspace.dependencies.type_constructor]
# version = "~0.3.0"
# path = "module/core/type_constructor"
# default-features = false
[workspace.dependencies.type_constructor]
version = "~0.3.0"
path = "module/postponed/type_constructor"
default-features = false

[workspace.dependencies.fundamental_data_type]
version = "~0.2.0"
Expand Down Expand Up @@ -376,7 +401,7 @@ path = "module/alias/werror"
## string tools

[workspace.dependencies.strs_tools]
version = "~0.19.0"
version = "~0.21.0"
path = "module/core/strs_tools"
default-features = false

Expand All @@ -398,7 +423,7 @@ path = "module/alias/file_tools"
default-features = false

[workspace.dependencies.pth]
version = "~0.23.0"
version = "~0.24.0"
path = "module/core/pth"
default-features = false

Expand All @@ -411,7 +436,7 @@ default-features = false
## process tools

[workspace.dependencies.process_tools]
version = "~0.13.0"
version = "~0.14.0"
path = "module/core/process_tools"
default-features = false

Expand Down Expand Up @@ -459,15 +484,15 @@ version = "~0.3.0"
path = "module/move/graphs_tools"
default-features = false

# [workspace.dependencies.automata_tools]
# version = "~0.2.0"
# path = "module/move/automata_tools"
# default-features = false
#
# [workspace.dependencies.wautomata]
# version = "~0.2.0"
# path = "module/alias/wautomata"
# default-features = false
[workspace.dependencies.automata_tools]
version = "~0.2.0"
path = "module/postponed/automata_tools"
default-features = false

[workspace.dependencies.wautomata]
version = "~0.2.0"
path = "module/postponed/wautomata"
default-features = false

## ca

Expand All @@ -485,7 +510,7 @@ path = "module/move/wcensor"
## willbe

[workspace.dependencies.willbe]
version = "~0.20.0"
version = "~0.23.0"
path = "module/move/willbe"


Expand Down Expand Up @@ -524,7 +549,7 @@ version = "~0.6.0"
path = "module/move/deterministic_rand"

[workspace.dependencies.crates_tools]
version = "~0.15.0"
version = "~0.16.0"
path = "module/move/crates_tools"

[workspace.dependencies.assistant]
Expand All @@ -538,12 +563,19 @@ path = "module/move/llm_tools"

## steps

[workspace.dependencies.integration_test]
path = "module/step/integration_test"
[workspace.dependencies.procedural_macro]
version = "~0.1.0"
path = "module/template/template_procedural_macro"
default-features = true

[workspace.dependencies.procedural_macro_meta]
version = "~0.1.0"
path = "module/template/template_procedural_macro_meta"
default-features = true

[workspace.dependencies.smoke_test]
path = "module/step/smoke_test"
[workspace.dependencies.procedural_macro_runtime]
version = "~0.1.0"
path = "module/template/template_procedural_macro_runtime"
default-features = true


Expand Down Expand Up @@ -666,9 +698,3 @@ default-features = false

# [replace]
# "macro_tools:0.56.0" = { path = "temp_crates/macro_tools_patched" }






27 changes: 27 additions & 0 deletions module/alias/unilang_instruction_parser/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
[package]
name = "unilang_instruction_parser"
version = "0.2.0"
edition = "2021"
license = "MIT"
readme = "readme.md"
authors = [ "Kostiantyn Wandalen <[email protected]>" ]
categories = [ "parsing", "command-line-interface" ]
keywords = [ "parser", "cli", "unilang", "instructions" ]
description = """
Alias crate for `unilang_parser`. Re-exports `unilang_parser` for backward compatibility.
"""
documentation = "https://docs.rs/unilang_instruction_parser"
repository = "https://github.com/Wandalen/wTools/tree/master/module/alias/unilang_instruction_parser"
homepage = "https://github.com/Wandalen/wTools/tree/master/module/alias/unilang_instruction_parser"

[dependencies]
unilang_parser = { workspace = true }

[dev-dependencies]
test_tools = { workspace = true }
strs_tools = { workspace = true, features = ["string_parse_request"] }
error_tools = { workspace = true, features = [ "enabled", "error_typed" ] }
iter_tools = { workspace = true, features = [ "enabled" ] }

[lints]
workspace = true
51 changes: 51 additions & 0 deletions module/alias/unilang_instruction_parser/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# unilang_instruction_parser

[![Crates.io](https://img.shields.io/crates/v/unilang_instruction_parser.svg)](https://crates.io/crates/unilang_instruction_parser)
[![Documentation](https://docs.rs/unilang_instruction_parser/badge.svg)](https://docs.rs/unilang_instruction_parser)
[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)

Alias crate for `unilang_parser`. Re-exports `unilang_parser` for backward compatibility.

## overview

This crate serves as a compatibility alias for the core `unilang_parser` library, which provides syntactic analysis for CLI-like instruction strings within the Unilang Framework. It enables parsing of command strings into structured `GenericInstruction` objects.

## key_features

- **command_path_parsing**: Multi-segment command paths (`namespace.command`)
- **argument_processing**: Both positional and named arguments (`key::value`)
- **quoting_support**: Single and double quotes with escape sequences
- **help_operator**: Built-in `?` help request handling
- **multiple_instructions**: Sequence parsing with `;;` separator
- **robust_error_reporting**: Detailed parse errors with source locations

## usage

```rust
use unilang_instruction_parser::{Parser, UnilangParserOptions};

let parser = Parser::new(UnilangParserOptions::default());
let input = "log.level severity::debug message::'Hello World!'";

match parser.parse_single_instruction(input) {
Ok(instruction) => {
println!("Command: {:?}", instruction.command_path_slices);
println!("Named args: {:?}", instruction.named_arguments);
},
Err(e) => eprintln!("Parse error: {}", e),
}
```

## migration_notice

This is an alias crate that re-exports `unilang_parser`. For new projects, consider using `unilang_parser` directly. This crate exists to maintain backward compatibility for existing code.

## documentation

For complete documentation and examples, see:
- [api_documentation](https://docs.rs/unilang_instruction_parser)
- [core_parser_documentation](https://docs.rs/unilang_parser)

## license

MIT License. See LICENSE file for details.
3 changes: 3 additions & 0 deletions module/alias/unilang_instruction_parser/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
//! Alias crate for `unilang_parser`. Re-exports `unilang_parser` for backward compatibility.

pub use unilang_parser::*;
13 changes: 13 additions & 0 deletions module/alias/unilang_instruction_parser/tests/smoke_test.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//! Smoke testing of the package.

#[ test ]
fn local_smoke_test()
{
::test_tools::smoke_test_for_local_run();
}

#[ test ]
fn published_smoke_test()
{
::test_tools::smoke_test_for_published_run();
}
34 changes: 34 additions & 0 deletions module/alias/unilang_instruction_parser/tests/tests.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
//! Test reuse for unilang_instruction_parser alias crate.
//!
//! This alias crate inherits all tests from the core unilang_parser implementation.
//! Following the wTools test reuse pattern used by meta_tools and test_tools.

#[ allow( unused_imports ) ]
use unilang_instruction_parser as the_module;
#[ allow( unused_imports ) ]
use test_tools::exposed::*;

// Include all test modules from the core unilang_parser crate using full module path
#[ path = "../../../../module/move/unilang_parser/tests/parser_config_entry_tests.rs" ]
mod parser_config_entry_tests;

#[ path = "../../../../module/move/unilang_parser/tests/command_parsing_tests.rs" ]
mod command_parsing_tests;

#[ path = "../../../../module/move/unilang_parser/tests/syntactic_analyzer_command_tests.rs" ]
mod syntactic_analyzer_command_tests;

#[ path = "../../../../module/move/unilang_parser/tests/argument_parsing_tests.rs" ]
mod argument_parsing_tests;

#[ path = "../../../../module/move/unilang_parser/tests/comprehensive_tests.rs" ]
mod comprehensive_tests;

#[ path = "../../../../module/move/unilang_parser/tests/error_reporting_tests.rs" ]
mod error_reporting_tests;

#[ path = "../../../../module/move/unilang_parser/tests/spec_adherence_tests.rs" ]
mod spec_adherence_tests;

#[ path = "../../../../module/move/unilang_parser/tests/temp_unescape_test.rs" ]
mod temp_unescape_test;
Loading