When you move, for example your software from Github to Codeberg, you should install a Nachsendeantrag (forwarding request).😜

Not the least because the old version persists in search engine results.

I now did so on Github leading to my NFA/DFA software for Java: https://codeberg.org/harald/monqjfa

Which was previously hosted on #github: https://github.com/HaraldKi/monqjfa

#codeberg #monqjfa #nfa #dfa

monqjfa

monqjfa

Codeberg.org

#monqjfa, my #nfa/#dfa, #regex library for #Java got some cleanup in the way finite automata are built. They do not only have the accepting states, but a state may also store a value. The values can be used for special tricks during state traversal. Historically the only "trick" was that this was an accepting state.

The latest refactoring made it clearer that more can be done and how states with values and accepting states are related.

https://harald.codeberg.page/monqjfa/

Feedback welcome.

#monqjfa, my #nfa/#dfa, #regex library for #Java has a grep-like program as an example of the use of the library. This got a new feature resembling grep's --color option to show matches with colors, using ANSI escape sequences

ooo r='RuleParser->{c:#44ff11}'

Yes, the program is called "ooo" 🙂 Why? ... Why not?

There are more things possible within the braces, the simplest one is

'...->{c}' as a shortcut for '...->{:red}

to get the match in red.

https://harald.codeberg.page/monqjfa/javadoc/monq/Oooo.html

Oooo (monq 4.1.0)

declaration: package: monq, class: Oooo

#monqjfa, my finite automaton library for #Java got

Capturing Parenthesis

Wait, WHAT? This is impossible with a deterministic finite automaton!

Yes it is, in full generality. But in a limited fashion it is possible, and I am not at the end of the road of this experiment.

https://codeberg.org/harald/monqjfa#dfa-versus-capturing-parentheses

#jvm #nfa #dfa #regex

monqjfa

monqjfa

Codeberg.org

#monqjfa, my #nfa/#dfa, #regex library for #Java has a grep-like program as an example of the use of the library. This got a new feature resembling grep's -l option to only list file names with matches, not the matches themselves. Example

ooo r='import.*map' names=only src

Yes, the program is called "ooo" 🙂 Why? ... Why not?

The names=only is the new feature. As soon as a match is found, the file name is printed and the program moves on to the next file.

https://codeberg.org/harald/monqjfa

monqjfa

monqjfa

Codeberg.org

You sure have wondered what practical use the intersection of two regular languages has.😀 It is not live changing, but hey, at least interesting.😎 (To a certain tribe.)

Here it is: https://miamao.de/blog/2024-08/18.A_Practical_Use_for_Regular_Language_Intersection.html
#cs #computerscience #informatik #endlicheautomaten #finiteautomata #nfa #dfa #monqjfa

Haralds Blog — A Practical Use for Regular Language Intersection

#monqjfa, my #nfa/#dfa, #regex library for #Java got its first new feature during current modernization. The last operation of finite automata/regular languages which was missing: intersection
You can now write a regular expression "some.*stuff&(END)^" which means

Match strings which match
- some.*stuff
- AND (the &) at the same time
- any string NOT CONTAINING (the ^) END

Allows to use .* but avoids a match across a hard end, e.g. the string "END".

https://codeberg.org/harald/monqjfa

#computerscience

monqjfa

monqjfa

Codeberg.org

My #Java package #monqjfa for (non)deterministic finite automata (#nfa, #dfa) got an update: Following the advice "eat your own dogfood", I wrote a small application somewhat resembling grep or sed, more to show how the library could be used than pretending to be better than sed/grep/awk. Though it has some coolness in the defaults used 😀 .

https://codeberg.org/harald/monqjfa#example-application

#informatikEdu
#informatik
#endlicheautomaten
#finiteautomata

monqjfa

monqjfa

Codeberg.org