regex ir opt code rewriting, use over-again opt method

This commit is contained in:
Youmu Liu
2026-06-29 17:14:52 +08:00
parent 347d4b5a47
commit e60eb0ada6
6 changed files with 188 additions and 411 deletions
@@ -117,7 +117,7 @@ namespace StgSharp.RegularAnalysis.Text
RegexIRGenerator groupIR = new();
rightIR = GenerateIRRecursion(right, curDepth + 1);
groupIR.EmitTry(rightIR.Count);
groupIR.EmitMatchComplex(rightIR.Count);
groupIR.EmitIRStream(rightIR);
groupIR.EmitCondition(2, 1);
groupIR.EmitPop(false);
@@ -251,7 +251,7 @@ namespace StgSharp.RegularAnalysis.Text
RegexIRGenerator cur_ir = casesIRList[^case_count];
ir_count -= cur_ir.Count;
case_count--;
alt.EmitTry(cur_ir.Count);
alt.EmitMatchComplex(cur_ir.Count);
alt.EmitIRStream(cur_ir);
alt.EmitCondition(1/* need to calc here */, 2);
alt.EmitPop(true);