cml 1.0.1
cml: ^1.0.1 copied to clipboard
CML(Context Mark Language)核心语法编解码的Dart实现。 CML是语义时代的Markdown,目标是让兼具人类可读和机器可运算特征的关系结构片段, 成为可大规模计算、任意传输、分布式存储的语义中间层。
/// CML 使用示例
library example;
import 'package:cml/cml.dart';
void main() {
print('=== CML 使用示例 ===\n');
try {
// 示例1: 基本创建和编码
print('1. 基本创建和编码:');
final fragments = newCml(['万有引力', ':', '牛顿', '+', '自然哲学的数学原理', '@', '1687年']);
print('原始数据: ${fragments.tokens}');
print('关系符: ${fragments.relations}');
final encodedP = fragments.encodeP();
print('P模式编码: $encodedP\n');
// 示例2: 模式转换
print('2. 编码模式转换:');
final encodedA = cmlToA(encodedP);
final encodedC = cmlToC(encodedP);
final encodedQ = cmlToQ(encodedP);
print('P -> A: $encodedA');
print('P -> C: $encodedC');
print('P -> Q: $encodedQ\n');
// 示例3: 解码
print('3. 解码验证:');
final decodedA = cmlToFragments(encodedA);
print('A模式解码: ${decodedA.tokens}');
// 验证往返一致性
print('往返一致性: ${decodedA.tokens == fragments.tokens ? '✅ 通过' : '❌ 失败'}\n');
// 示例4: Markdown转换
print('4. Markdown转换:');
final markdown = toMarkdown(encodedP);
print('CML转Markdown: $markdown');
final recovered = fromMarkdown(markdown);
print('Markdown转CML: $recovered');
print('Markdown往返一致性: ${recovered == fragments.tokens ? '✅ 通过' : '❌ 失败'}\n');
// 示例5: 特殊字符处理
print('5. 特殊字符处理:');
final specialFragments = newCml(['test@value', '@', 'domain.com']);
final specialEncoded = specialFragments.encodeP();
print('包含特殊字符: ${specialFragments.tokens}');
print('P模式编码: $specialEncoded');
final specialDecoded = cmlToFragments(specialEncoded);
print('解码结果: ${specialDecoded.tokens}');
print('特殊字符往返一致性: ${specialDecoded.tokens == specialFragments.tokens ? '✅ 通过' : '❌ 失败'}\n');
// 示例6: 验证功能
print('6. CML验证功能:');
print('合法CML验证: ${isCML(encodedP) ? '✅ 合法' : '❌ 非法'}');
print('非法CML验证: ${isCML('invalid_cml') ? '✅ 合法' : '❌ 非法'}\n');
print('=== 所有示例运行完成 ===');
} catch (e) {
print('❌ 运行出错: $e');
}
}