@orcalang/orca-lang 0.1.21 → 0.1.27
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.
- package/dist/compiler/dt-compiler.d.ts +1 -0
- package/dist/compiler/dt-compiler.d.ts.map +1 -1
- package/dist/compiler/dt-compiler.js +160 -3
- package/dist/compiler/dt-compiler.js.map +1 -1
- package/dist/compiler/xstate.d.ts.map +1 -1
- package/dist/compiler/xstate.js +13 -1
- package/dist/compiler/xstate.js.map +1 -1
- package/dist/health-check.js +75 -0
- package/dist/health-check.js.map +1 -1
- package/dist/parser/dt-ast.d.ts +11 -1
- package/dist/parser/dt-ast.d.ts.map +1 -1
- package/dist/parser/dt-parser.d.ts.map +1 -1
- package/dist/parser/dt-parser.js +40 -8
- package/dist/parser/dt-parser.js.map +1 -1
- package/dist/parser/markdown-parser.d.ts.map +1 -1
- package/dist/parser/markdown-parser.js +6 -0
- package/dist/parser/markdown-parser.js.map +1 -1
- package/dist/skills.d.ts +2 -2
- package/dist/skills.d.ts.map +1 -1
- package/dist/skills.js +200 -6
- package/dist/skills.js.map +1 -1
- package/dist/tools.js +4 -4
- package/dist/tools.js.map +1 -1
- package/dist/verifier/determinism.js +5 -5
- package/dist/verifier/determinism.js.map +1 -1
- package/dist/verifier/dt-verifier.d.ts.map +1 -1
- package/dist/verifier/dt-verifier.js +259 -31
- package/dist/verifier/dt-verifier.js.map +1 -1
- package/dist/verifier/structural.d.ts.map +1 -1
- package/dist/verifier/structural.js +11 -5
- package/dist/verifier/structural.js.map +1 -1
- package/package.json +1 -1
- package/src/compiler/dt-compiler.ts +160 -3
- package/src/compiler/xstate.ts +15 -1
- package/src/health-check.ts +79 -0
- package/src/parser/dt-ast.ts +4 -2
- package/src/parser/dt-parser.ts +46 -8
- package/src/parser/markdown-parser.ts +6 -0
- package/src/skills.ts +201 -7
- package/src/tools.ts +4 -4
- package/src/verifier/determinism.ts +5 -5
- package/src/verifier/dt-verifier.ts +272 -29
- package/src/verifier/structural.ts +12 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structural.js","sourceRoot":"","sources":["../../src/verifier/structural.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"structural.js","sourceRoot":"","sources":["../../src/verifier/structural.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -55,7 +55,7 @@ function generateTypeScriptType(type: string, values: string[]): string {
|
|
|
55
55
|
if (type === 'enum') {
|
|
56
56
|
return values.length > 0 ? values.map(v => `'${v}'`).join(' | ') : 'string';
|
|
57
57
|
}
|
|
58
|
-
if (type === 'int_range') {
|
|
58
|
+
if (type === 'int_range' || type === 'decimal_range') {
|
|
59
59
|
return 'number';
|
|
60
60
|
}
|
|
61
61
|
return 'string';
|
|
@@ -68,10 +68,12 @@ function generateConditionCheck(condName: string, condType: string, cell: CellVa
|
|
|
68
68
|
return ''; // No condition needed
|
|
69
69
|
|
|
70
70
|
case 'exact':
|
|
71
|
-
// For bool type, compare to boolean; for others, compare to string
|
|
72
71
|
if (condType === 'bool') {
|
|
73
72
|
return `input.${condName} === ${cell.value}`;
|
|
74
73
|
}
|
|
74
|
+
if (condType === 'int_range' || condType === 'decimal_range') {
|
|
75
|
+
return `input.${condName} === ${cell.value}`;
|
|
76
|
+
}
|
|
75
77
|
return `input.${condName} === '${cell.value}'`;
|
|
76
78
|
|
|
77
79
|
case 'negated':
|
|
@@ -80,14 +82,27 @@ function generateConditionCheck(condName: string, condType: string, cell: CellVa
|
|
|
80
82
|
}
|
|
81
83
|
return `input.${condName} !== '${cell.value}'`;
|
|
82
84
|
|
|
83
|
-
case 'set':
|
|
85
|
+
case 'set': {
|
|
84
86
|
const checks = cell.values.map(v => {
|
|
85
87
|
if (condType === 'bool') {
|
|
86
88
|
return `input.${condName} === ${v}`;
|
|
87
89
|
}
|
|
90
|
+
if (condType === 'int_range' || condType === 'decimal_range') {
|
|
91
|
+
return `input.${condName} === ${v}`;
|
|
92
|
+
}
|
|
88
93
|
return `input.${condName} === '${v}'`;
|
|
89
94
|
}).join(' || ');
|
|
90
95
|
return `(${checks})`;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
case 'compare':
|
|
99
|
+
return `input.${condName} ${cell.op} ${cell.value}`;
|
|
100
|
+
|
|
101
|
+
case 'range': {
|
|
102
|
+
const lowCheck = cell.lowInc ? `input.${condName} >= ${cell.low}` : `input.${condName} > ${cell.low}`;
|
|
103
|
+
const highCheck = cell.highInc ? `input.${condName} <= ${cell.high}` : `input.${condName} < ${cell.high}`;
|
|
104
|
+
return `(${lowCheck} && ${highCheck})`;
|
|
105
|
+
}
|
|
91
106
|
|
|
92
107
|
default:
|
|
93
108
|
return '';
|
|
@@ -222,6 +237,12 @@ export function compileDecisionTableToJSON(dt: DecisionTableDef): string {
|
|
|
222
237
|
conditions[name] = `!${cell.value}`;
|
|
223
238
|
} else if (cell.kind === 'set') {
|
|
224
239
|
conditions[name] = cell.values.join(',');
|
|
240
|
+
} else if (cell.kind === 'compare') {
|
|
241
|
+
conditions[name] = `${cell.op}${cell.value}`;
|
|
242
|
+
} else if (cell.kind === 'range') {
|
|
243
|
+
const lowBracket = cell.lowInc ? '' : '(';
|
|
244
|
+
const highBracket = cell.highInc ? '' : ')';
|
|
245
|
+
conditions[name] = `${lowBracket}${cell.low}..${cell.high}${highBracket}`;
|
|
225
246
|
}
|
|
226
247
|
// 'any' is omitted
|
|
227
248
|
}
|
|
@@ -246,6 +267,7 @@ export function compileDecisionTableToJSON(dt: DecisionTableDef): string {
|
|
|
246
267
|
function generatePythonType(type: string): string {
|
|
247
268
|
if (type === 'bool') return 'bool';
|
|
248
269
|
if (type === 'int_range') return 'int';
|
|
270
|
+
if (type === 'decimal_range') return 'float';
|
|
249
271
|
return 'str';
|
|
250
272
|
}
|
|
251
273
|
|
|
@@ -255,6 +277,7 @@ function generatePythonConditionCheck(condName: string, condType: string, cell:
|
|
|
255
277
|
return '';
|
|
256
278
|
case 'exact':
|
|
257
279
|
if (condType === 'bool') return `input.${condName} == ${cell.value}`;
|
|
280
|
+
if (condType === 'int_range' || condType === 'decimal_range') return `input.${condName} == ${cell.value}`;
|
|
258
281
|
return `input.${condName} == '${cell.value}'`;
|
|
259
282
|
case 'negated':
|
|
260
283
|
if (condType === 'bool') return `input.${condName} != ${cell.value}`;
|
|
@@ -265,6 +288,13 @@ function generatePythonConditionCheck(condName: string, condType: string, cell:
|
|
|
265
288
|
).join(' or ');
|
|
266
289
|
return `(${checks})`;
|
|
267
290
|
}
|
|
291
|
+
case 'compare':
|
|
292
|
+
return `input.${condName} ${cell.op} ${cell.value}`;
|
|
293
|
+
case 'range': {
|
|
294
|
+
const lowCheck = cell.lowInc ? `input.${condName} >= ${cell.low}` : `input.${condName} > ${cell.low}`;
|
|
295
|
+
const highCheck = cell.highInc ? `input.${condName} <= ${cell.high}` : `input.${condName} < ${cell.high}`;
|
|
296
|
+
return `(${lowCheck} and ${highCheck})`;
|
|
297
|
+
}
|
|
268
298
|
default:
|
|
269
299
|
return '';
|
|
270
300
|
}
|
|
@@ -352,6 +382,7 @@ export function compileDecisionTableToPython(dt: DecisionTableDef): string {
|
|
|
352
382
|
function generateGoType(type: string): string {
|
|
353
383
|
if (type === 'bool') return 'bool';
|
|
354
384
|
if (type === 'int_range') return 'int';
|
|
385
|
+
if (type === 'decimal_range') return 'float64';
|
|
355
386
|
return 'string';
|
|
356
387
|
}
|
|
357
388
|
|
|
@@ -362,6 +393,7 @@ function generateGoConditionCheck(condName: string, condType: string, cell: Cell
|
|
|
362
393
|
return '';
|
|
363
394
|
case 'exact':
|
|
364
395
|
if (condType === 'bool') return `input.${goField} == ${cell.value}`;
|
|
396
|
+
if (condType === 'int_range' || condType === 'decimal_range') return `input.${goField} == ${cell.value}`;
|
|
365
397
|
return `input.${goField} == "${cell.value}"`;
|
|
366
398
|
case 'negated':
|
|
367
399
|
if (condType === 'bool') return `input.${goField} != ${cell.value}`;
|
|
@@ -372,6 +404,13 @@ function generateGoConditionCheck(condName: string, condType: string, cell: Cell
|
|
|
372
404
|
).join(' || ');
|
|
373
405
|
return `(${checks})`;
|
|
374
406
|
}
|
|
407
|
+
case 'compare':
|
|
408
|
+
return `input.${goField} ${cell.op} ${cell.value}`;
|
|
409
|
+
case 'range': {
|
|
410
|
+
const lowCheck = cell.lowInc ? `input.${goField} >= ${cell.low}` : `input.${goField} > ${cell.low}`;
|
|
411
|
+
const highCheck = cell.highInc ? `input.${goField} <= ${cell.high}` : `input.${goField} < ${cell.high}`;
|
|
412
|
+
return `(${lowCheck} && ${highCheck})`;
|
|
413
|
+
}
|
|
375
414
|
default:
|
|
376
415
|
return '';
|
|
377
416
|
}
|
|
@@ -452,3 +491,121 @@ export function compileDecisionTableToGo(dt: DecisionTableDef): string {
|
|
|
452
491
|
|
|
453
492
|
return lines.join('\n');
|
|
454
493
|
}
|
|
494
|
+
|
|
495
|
+
// ============================================================
|
|
496
|
+
// Rust Compiler
|
|
497
|
+
// ============================================================
|
|
498
|
+
|
|
499
|
+
function generateRustType(type: string): string {
|
|
500
|
+
if (type === 'bool') return 'bool';
|
|
501
|
+
if (type === 'int_range') return 'i64';
|
|
502
|
+
if (type === 'decimal_range') return 'f64';
|
|
503
|
+
return 'String';
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
function generateRustConditionCheck(condName: string, condType: string, cell: CellValue): string {
|
|
507
|
+
switch (cell.kind) {
|
|
508
|
+
case 'any':
|
|
509
|
+
return '';
|
|
510
|
+
case 'exact':
|
|
511
|
+
if (condType === 'bool') return `input.${condName} == ${cell.value}`;
|
|
512
|
+
if (condType === 'int_range' || condType === 'decimal_range') return `input.${condName} == ${cell.value}`;
|
|
513
|
+
return `input.${condName} == "${cell.value}"`;
|
|
514
|
+
case 'negated':
|
|
515
|
+
if (condType === 'bool') return `input.${condName} != ${cell.value}`;
|
|
516
|
+
return `input.${condName} != "${cell.value}"`;
|
|
517
|
+
case 'set': {
|
|
518
|
+
const checks = cell.values.map(v =>
|
|
519
|
+
condType === 'bool' ? `input.${condName} == ${v}` : `input.${condName} == "${v}"`
|
|
520
|
+
).join(' || ');
|
|
521
|
+
return `(${checks})`;
|
|
522
|
+
}
|
|
523
|
+
case 'compare':
|
|
524
|
+
return `input.${condName} ${cell.op} ${cell.value}`;
|
|
525
|
+
case 'range': {
|
|
526
|
+
const lowCheck = cell.lowInc ? `input.${condName} >= ${cell.low}` : `input.${condName} > ${cell.low}`;
|
|
527
|
+
const highCheck = cell.highInc ? `input.${condName} <= ${cell.high}` : `input.${condName} < ${cell.high}`;
|
|
528
|
+
return `(${lowCheck} && ${highCheck})`;
|
|
529
|
+
}
|
|
530
|
+
default:
|
|
531
|
+
return '';
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
export function compileDecisionTableToRust(dt: DecisionTableDef): string {
|
|
536
|
+
const inputTypeName = `${toPascalCase(dt.name)}Input`;
|
|
537
|
+
const outputTypeName = `${toPascalCase(dt.name)}Output`;
|
|
538
|
+
const fnName = `evaluate_${toSnakeCase(dt.name)}`;
|
|
539
|
+
|
|
540
|
+
const lines: string[] = [];
|
|
541
|
+
|
|
542
|
+
lines.push(`/// Input conditions for the ${dt.name} decision table`);
|
|
543
|
+
lines.push('#[derive(Debug, Clone)]');
|
|
544
|
+
lines.push(`pub struct ${inputTypeName} {`);
|
|
545
|
+
for (const cond of dt.conditions) {
|
|
546
|
+
const rustType = generateRustType(cond.type);
|
|
547
|
+
const comment = cond.type === 'enum' && cond.values.length > 0
|
|
548
|
+
? ` // ${cond.values.join(', ')}`
|
|
549
|
+
: '';
|
|
550
|
+
lines.push(` pub ${cond.name}: ${rustType},${comment}`);
|
|
551
|
+
}
|
|
552
|
+
lines.push('}');
|
|
553
|
+
lines.push('');
|
|
554
|
+
|
|
555
|
+
lines.push(`/// Decision outputs for the ${dt.name} decision table`);
|
|
556
|
+
lines.push('#[derive(Debug, Clone)]');
|
|
557
|
+
lines.push(`pub struct ${outputTypeName} {`);
|
|
558
|
+
for (const action of dt.actions) {
|
|
559
|
+
const rustType = generateRustType(action.type);
|
|
560
|
+
const comment = action.type === 'enum' && action.values && action.values.length > 0
|
|
561
|
+
? ` // ${action.values.join(', ')}`
|
|
562
|
+
: '';
|
|
563
|
+
lines.push(` pub ${action.name}: ${rustType},${comment}`);
|
|
564
|
+
}
|
|
565
|
+
lines.push('}');
|
|
566
|
+
lines.push('');
|
|
567
|
+
|
|
568
|
+
const policy = dt.policy ?? 'first-match';
|
|
569
|
+
lines.push(`/// Evaluate the ${dt.name} decision table (${policy} policy)`);
|
|
570
|
+
lines.push(`pub fn ${fnName}(input: &${inputTypeName}) -> Option<${outputTypeName}> {`);
|
|
571
|
+
|
|
572
|
+
for (let ruleIdx = 0; ruleIdx < dt.rules.length; ruleIdx++) {
|
|
573
|
+
const rule = dt.rules[ruleIdx];
|
|
574
|
+
const ruleNum = rule.number ?? ruleIdx + 1;
|
|
575
|
+
|
|
576
|
+
const checks: string[] = [];
|
|
577
|
+
for (const [condName, cell] of rule.conditions) {
|
|
578
|
+
const condDef = dt.conditions.find(c => c.name === condName);
|
|
579
|
+
const condType = condDef?.type ?? 'string';
|
|
580
|
+
const check = generateRustConditionCheck(condName, condType, cell);
|
|
581
|
+
if (check) checks.push(check);
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
const actionFields = dt.actions
|
|
585
|
+
.map(a => {
|
|
586
|
+
const value = rule.actions.get(a.name);
|
|
587
|
+
if (value === undefined) return null;
|
|
588
|
+
const aType = a.type as string;
|
|
589
|
+
if (aType === 'bool') return `${a.name}: ${value}`;
|
|
590
|
+
if (aType === 'int_range') return `${a.name}: ${value}`;
|
|
591
|
+
if (aType === 'decimal_range') return `${a.name}: ${value}`;
|
|
592
|
+
return `${a.name}: "${value}".to_string()`;
|
|
593
|
+
})
|
|
594
|
+
.filter((v): v is string => v !== null)
|
|
595
|
+
.join(', ');
|
|
596
|
+
|
|
597
|
+
lines.push(` // Rule ${ruleNum}`);
|
|
598
|
+
if (checks.length === 0) {
|
|
599
|
+
lines.push(` return Some(${outputTypeName} { ${actionFields} });`);
|
|
600
|
+
} else {
|
|
601
|
+
lines.push(` if ${checks.join(' && ')} {`);
|
|
602
|
+
lines.push(` return Some(${outputTypeName} { ${actionFields} });`);
|
|
603
|
+
lines.push(` }`);
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
lines.push(' None // no rule matched');
|
|
608
|
+
lines.push('}');
|
|
609
|
+
|
|
610
|
+
return lines.join('\n');
|
|
611
|
+
}
|
package/src/compiler/xstate.ts
CHANGED
|
@@ -528,7 +528,7 @@ export function compileToXState(machine: MachineDef): string {
|
|
|
528
528
|
lines.push(` target: '${target}',`);
|
|
529
529
|
if (t.guard) {
|
|
530
530
|
const guardName = t.guard.negated ? `!${t.guard.name}` : t.guard.name;
|
|
531
|
-
lines.push(` guard: '${guardName}',`);
|
|
531
|
+
lines.push(` guard: { type: '${guardName}' },`);
|
|
532
532
|
}
|
|
533
533
|
if (t.action) {
|
|
534
534
|
lines.push(` actions: '${t.action}',`);
|
|
@@ -554,6 +554,20 @@ export function compileToXState(machine: MachineDef): string {
|
|
|
554
554
|
}
|
|
555
555
|
|
|
556
556
|
lines.push(` },`);
|
|
557
|
+
|
|
558
|
+
// Emit guards section if any guards are defined
|
|
559
|
+
if (machine.guards.length > 0) {
|
|
560
|
+
lines.push(`}, {`);
|
|
561
|
+
lines.push(` guards: {`);
|
|
562
|
+
for (const guard of machine.guards) {
|
|
563
|
+
lines.push(` '${guard.name}': ({ context }) => {`);
|
|
564
|
+
lines.push(` // TODO: implement guard logic for: ${guard.name}`);
|
|
565
|
+
lines.push(` return true;`);
|
|
566
|
+
lines.push(` },`);
|
|
567
|
+
}
|
|
568
|
+
lines.push(` },`);
|
|
569
|
+
}
|
|
570
|
+
|
|
557
571
|
lines.push(`});`);
|
|
558
572
|
|
|
559
573
|
return lines.join('\n');
|
package/src/health-check.ts
CHANGED
|
@@ -186,6 +186,85 @@ async function runHealthCheck(): Promise<HealthReport> {
|
|
|
186
186
|
}
|
|
187
187
|
}
|
|
188
188
|
|
|
189
|
+
// ── Step 7: runtime-rust tests ──────────────────────────────────
|
|
190
|
+
{
|
|
191
|
+
const step: StepResult = { name: 'runtime-rust:test', status: 'pending', output: '', duration: 0 };
|
|
192
|
+
const start = Date.now();
|
|
193
|
+
console.log('━━━ Running runtime-rust tests ━━━');
|
|
194
|
+
const result = runCommand('cd packages/runtime-rust && cargo test 2>&1', REPO_ROOT);
|
|
195
|
+
step.duration = Date.now() - start;
|
|
196
|
+
step.status = result.status === 0 ? 'success' : 'failed';
|
|
197
|
+
step.output = result.status === 0 ? 'Tests passed' : result.stdout;
|
|
198
|
+
report.steps.push(step);
|
|
199
|
+
console.log(` ${step.status === 'success' ? '✓' : '✗'} runtime-rust tests ${step.status} (${step.duration}ms)\n`);
|
|
200
|
+
if (step.status === 'failed') {
|
|
201
|
+
report.endTime = Date.now();
|
|
202
|
+
return report;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
// ── Step 7b: demo-fortran ─────────────────────────────────────
|
|
207
|
+
{
|
|
208
|
+
const step: StepResult = { name: 'demo-fortran', status: 'pending', output: '', duration: 0 };
|
|
209
|
+
const start = Date.now();
|
|
210
|
+
|
|
211
|
+
// Check if gfortran is available
|
|
212
|
+
const gfortranCheck = runCommand('which gfortran 2>/dev/null', REPO_ROOT);
|
|
213
|
+
if (gfortranCheck.status !== 0) {
|
|
214
|
+
step.duration = Date.now() - start;
|
|
215
|
+
step.status = 'success';
|
|
216
|
+
step.output = 'Skipped (gfortran not installed)';
|
|
217
|
+
report.steps.push(step);
|
|
218
|
+
console.log(` ○ demo-fortran skipped (gfortran not installed) (${step.duration}ms)\n`);
|
|
219
|
+
} else {
|
|
220
|
+
console.log('━━━ Building and running demo-fortran ━━━');
|
|
221
|
+
const result = runCommand('cd packages/demo-fortran && make run 2>&1', REPO_ROOT);
|
|
222
|
+
step.duration = Date.now() - start;
|
|
223
|
+
step.status = result.status === 0 ? 'success' : 'failed';
|
|
224
|
+
step.output = result.status === 0 ? 'Demo passed' : result.stdout;
|
|
225
|
+
report.steps.push(step);
|
|
226
|
+
console.log(` ${step.status === 'success' ? '✓' : '✗'} demo-fortran ${step.status} (${step.duration}ms)\n`);
|
|
227
|
+
if (step.status === 'failed') {
|
|
228
|
+
report.endTime = Date.now();
|
|
229
|
+
return report;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
// ── Step 7c: demo-rust ─────────────────────────────────────────
|
|
235
|
+
{
|
|
236
|
+
const step: StepResult = { name: 'demo-rust', status: 'pending', output: '', duration: 0 };
|
|
237
|
+
const start = Date.now();
|
|
238
|
+
console.log('━━━ Running demo-rust tests ━━━');
|
|
239
|
+
const result = runCommand('cd packages/demo-rust && cargo test 2>&1', REPO_ROOT);
|
|
240
|
+
step.duration = Date.now() - start;
|
|
241
|
+
step.status = result.status === 0 ? 'success' : 'failed';
|
|
242
|
+
step.output = result.status === 0 ? 'Tests passed' : result.stdout;
|
|
243
|
+
report.steps.push(step);
|
|
244
|
+
console.log(` ${step.status === 'success' ? '✓' : '✗'} demo-rust tests ${step.status} (${step.duration}ms)\n`);
|
|
245
|
+
if (step.status === 'failed') {
|
|
246
|
+
report.endTime = Date.now();
|
|
247
|
+
return report;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// ── Step 7d: demo-rust-event ───────────────────────────────────
|
|
252
|
+
{
|
|
253
|
+
const step: StepResult = { name: 'demo-rust-event', status: 'pending', output: '', duration: 0 };
|
|
254
|
+
const start = Date.now();
|
|
255
|
+
console.log('━━━ Running demo-rust-event ━━━');
|
|
256
|
+
const result = runCommand('cd packages/demo-rust-event && cargo run 2>&1', REPO_ROOT);
|
|
257
|
+
step.duration = Date.now() - start;
|
|
258
|
+
step.status = result.status === 0 ? 'success' : 'failed';
|
|
259
|
+
step.output = result.status === 0 ? 'Demo passed' : result.stdout;
|
|
260
|
+
report.steps.push(step);
|
|
261
|
+
console.log(` ${step.status === 'success' ? '✓' : '✗'} demo-rust-event ${step.status} (${step.duration}ms)\n`);
|
|
262
|
+
if (step.status === 'failed') {
|
|
263
|
+
report.endTime = Date.now();
|
|
264
|
+
return report;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
|
|
189
268
|
// ── Step 8: demo-nanolab tests ─────────────────────────────────
|
|
190
269
|
{
|
|
191
270
|
const step: StepResult = { name: 'demo-nanolab:test', status: 'pending', output: '', duration: 0 };
|
package/src/parser/dt-ast.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Decision Table AST Types
|
|
2
2
|
|
|
3
|
-
export type ConditionType = 'bool' | 'enum' | 'int_range' | 'string';
|
|
3
|
+
export type ConditionType = 'bool' | 'enum' | 'int_range' | 'decimal_range' | 'string';
|
|
4
4
|
|
|
5
5
|
export interface ConditionDef {
|
|
6
6
|
name: string;
|
|
@@ -22,7 +22,9 @@ export type CellValue =
|
|
|
22
22
|
| { kind: 'any' } // "-" wildcard
|
|
23
23
|
| { kind: 'exact'; value: string } // exact match
|
|
24
24
|
| { kind: 'negated'; value: string } // "!value"
|
|
25
|
-
| { kind: 'set'; values: string[] }
|
|
25
|
+
| { kind: 'set'; values: string[] } // "a,b" (match any in set)
|
|
26
|
+
| { kind: 'compare'; op: '>' | '>=' | '<' | '<='; value: number } // >=750, <0.3
|
|
27
|
+
| { kind: 'range'; low: number; high: number; lowInc: boolean; highInc: boolean }; // 700..749, 0.3-0.4
|
|
26
28
|
|
|
27
29
|
export interface Rule {
|
|
28
30
|
number?: number; // optional rule # from the # column
|
package/src/parser/dt-parser.ts
CHANGED
|
@@ -21,7 +21,37 @@ function findColumnIndex(headers: string[], name: string): number {
|
|
|
21
21
|
|
|
22
22
|
// --- Cell Value Parsing ---
|
|
23
23
|
|
|
24
|
-
function
|
|
24
|
+
function parseNumericCell(text: string): CellValue | null {
|
|
25
|
+
// Suffix form: 750+ means >=750
|
|
26
|
+
const suffixPlus = text.match(/^(-?\d+(?:\.\d+)?)\+$/);
|
|
27
|
+
if (suffixPlus) {
|
|
28
|
+
return { kind: 'compare', op: '>=', value: parseFloat(suffixPlus[1]) };
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Comparison operators: >=750, <=0.3, >100, <600
|
|
32
|
+
const cmpMatch = text.match(/^(>=|<=|>|<)\s*(-?\d+(?:\.\d+)?)$/);
|
|
33
|
+
if (cmpMatch) {
|
|
34
|
+
return { kind: 'compare', op: cmpMatch[1] as '>' | '>=' | '<' | '<=', value: parseFloat(cmpMatch[2]) };
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// Range with .. separator: 1..50 (inclusive both ends)
|
|
38
|
+
const dotRange = text.match(/^(-?\d+(?:\.\d+)?)\s*\.\.\s*(-?\d+(?:\.\d+)?)$/);
|
|
39
|
+
if (dotRange) {
|
|
40
|
+
return { kind: 'range', low: parseFloat(dotRange[1]), high: parseFloat(dotRange[2]), lowInc: true, highInc: true };
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Range with - separator for numbers: 700-749, 0.3-0.4
|
|
44
|
+
// Must have at least one side that looks numeric (digit-starting).
|
|
45
|
+
// Negative numbers on the left are ambiguous with subtraction — require left >= 0.
|
|
46
|
+
const dashRange = text.match(/^(\d+(?:\.\d+)?)\s*-\s*(\d+(?:\.\d+)?)$/);
|
|
47
|
+
if (dashRange) {
|
|
48
|
+
return { kind: 'range', low: parseFloat(dashRange[1]), high: parseFloat(dashRange[2]), lowInc: true, highInc: true };
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function parseCellValue(text: string | undefined, condType?: ConditionType): CellValue {
|
|
25
55
|
if (!text || text.trim() === '' || text.trim() === '-') {
|
|
26
56
|
return { kind: 'any' };
|
|
27
57
|
}
|
|
@@ -36,6 +66,12 @@ function parseCellValue(text: string | undefined): CellValue {
|
|
|
36
66
|
}
|
|
37
67
|
}
|
|
38
68
|
|
|
69
|
+
// Numeric range/compare patterns — only attempt for numeric condition types
|
|
70
|
+
if (condType === 'int_range' || condType === 'decimal_range') {
|
|
71
|
+
const numeric = parseNumericCell(trimmed);
|
|
72
|
+
if (numeric) return numeric;
|
|
73
|
+
}
|
|
74
|
+
|
|
39
75
|
// Set: a,b,c
|
|
40
76
|
if (trimmed.includes(',')) {
|
|
41
77
|
return { kind: 'set', values: trimmed.split(',').map(v => v.trim()).filter(Boolean) };
|
|
@@ -65,11 +101,11 @@ function parseConditionsTable(table: MdTable): ConditionDef[] {
|
|
|
65
101
|
|
|
66
102
|
if (type === 'bool') {
|
|
67
103
|
values = valuesStr.trim() ? valuesStr.split(',').map(v => v.trim()) : ['true', 'false'];
|
|
68
|
-
} else if (type === 'int_range') {
|
|
69
|
-
// Parse min..max format
|
|
70
|
-
const rangeMatch = valuesStr.match(/(
|
|
104
|
+
} else if (type === 'int_range' || type === 'decimal_range') {
|
|
105
|
+
// Parse min..max format (integers or decimals)
|
|
106
|
+
const rangeMatch = valuesStr.match(/(-?\d+(?:\.\d+)?)\s*\.\.\s*(-?\d+(?:\.\d+)?)/);
|
|
71
107
|
if (rangeMatch) {
|
|
72
|
-
range = { min:
|
|
108
|
+
range = { min: parseFloat(rangeMatch[1]), max: parseFloat(rangeMatch[2]) };
|
|
73
109
|
values = [];
|
|
74
110
|
} else {
|
|
75
111
|
values = [];
|
|
@@ -116,7 +152,8 @@ function parseActionsTable(table: MdTable): ActionOutputDef[] {
|
|
|
116
152
|
function parseRulesTable(
|
|
117
153
|
table: MdTable,
|
|
118
154
|
conditionNames: Set<string>,
|
|
119
|
-
actionNames: Set<string
|
|
155
|
+
actionNames: Set<string>,
|
|
156
|
+
conditionDefs?: ConditionDef[]
|
|
120
157
|
): { rules: Rule[]; warnings: string[] } {
|
|
121
158
|
const warnings: string[] = [];
|
|
122
159
|
const rules: Rule[] = [];
|
|
@@ -167,7 +204,8 @@ function parseRulesTable(
|
|
|
167
204
|
rule.number = num;
|
|
168
205
|
}
|
|
169
206
|
} else if (col.type === 'condition') {
|
|
170
|
-
const
|
|
207
|
+
const condDef = conditionDefs?.find(c => c.name === col.name);
|
|
208
|
+
const cellValue = parseCellValue(cell, condDef?.type);
|
|
171
209
|
rule.conditions.set(col.name, cellValue);
|
|
172
210
|
} else if (col.type === 'action') {
|
|
173
211
|
const value = cell?.trim() || '';
|
|
@@ -254,7 +292,7 @@ export function parseDecisionTable(elements: MdElement[]): { decisionTable: Deci
|
|
|
254
292
|
} else if (currentSection === 'actions') {
|
|
255
293
|
actions = parseActionsTable(el);
|
|
256
294
|
} else if (currentSection === 'rules') {
|
|
257
|
-
const result = parseRulesTable(el, new Set(conditions.map(c => c.name)), new Set(actions.map(a => a.name)));
|
|
295
|
+
const result = parseRulesTable(el, new Set(conditions.map(c => c.name)), new Set(actions.map(a => a.name)), conditions);
|
|
258
296
|
rules = result.rules;
|
|
259
297
|
warnings.push(...result.warnings);
|
|
260
298
|
}
|
|
@@ -511,7 +511,13 @@ function parsePropertyFromBullet(text: string): Property {
|
|
|
511
511
|
const to = parts[0].trim();
|
|
512
512
|
const withinParts = parts[1].split(/\s+within\s+/);
|
|
513
513
|
const from = withinParts[0].trim();
|
|
514
|
+
if (!withinParts[1]) {
|
|
515
|
+
throw new Error(`Invalid responds property: missing 'within N' bound in '${text}'`);
|
|
516
|
+
}
|
|
514
517
|
const within = parseInt(withinParts[1].trim(), 10);
|
|
518
|
+
if (isNaN(within)) {
|
|
519
|
+
throw new Error(`Invalid responds property: 'within' value '${withinParts[1].trim()}' is not a number in '${text}'`);
|
|
520
|
+
}
|
|
515
521
|
// Match DSL parser property order: kind, from, to, within
|
|
516
522
|
return { kind: 'responds', from, to, within } as RespondsProperty;
|
|
517
523
|
}
|