Бих искал да направя съвпадение на регулярни изрази на персонализирани азбуки, като използвам персонализирани команди. целта е да се изследват уравнения и изрази, които се появяват в метеорологията.
Така например моята азбука an be [p, rho, u, v, w, x, y, z, g, f, phi, t, T, +, -, /]
ЗАБЕЛЕЖКА: rho и phi са множество символи, които трябва да се третират като един знак.
Бих искал също да използвам персонализирани команди, като \v
за променлива, т.е. не аритматичните оператори.
Бих искал да използвам други команди като (\v).
обърнете внимание, че точката трябва да съвпада с dx/dt
, където x
е променлива. по подобен начин, дадени p=p(x,y,z)
, p'
ще съвпаднат с dp/dx
, dp/dy
и dp/dz
, но не и с dp/df
. (някъде там ще бъде дадено това p = p(x,y,z)
).
Бих искал също да мога да се върна назад.
Сега, проучих PCRE и ragel с D, виждам, че първите два проблема са разрешими, с обекти с множество символи, дефинирани като фиксирани обекти. а не клас символи.
Но как да се обърна към третото?
Не виждам PCRE или RAGEL да допускат начин за използване на персонализирани команди. Освен това, тъй като бих искал да използвам backtrack, не съм сигурен дали Ragel е правилната опция, тъй като това ще се нуждае от стек, което означава, че ще използвам CFG.
Има ли може би специфичен за домейн език за изграждане на такива regex/cfg машини (за linux 64 бита, ако има значение)