logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

grammar::fa::dacceptor - Create and use deterministic acceptors

Acceptor Methods

       All acceptors provide the following methods for their manipulation:

       daNamedestroy
              Destroys the automaton, including its storage space and associated command.

       daNameaccept?symbols
              Takes the list of symbols and checks if the FA the acceptor is  based  on  would  accept  it.  The
              result is a boolean value. True is returned if the symbols are accepted, and False otherwise. Note
              that  bogus  symbols in the input are either translated to the any symbol (if specified), or cause
              the acceptance test to simply fail. No errors will be thrown. The method will  process  only  just
              that prefix of the input which is enough to fully determine (non-)acceptance.

Api

       The package exports the API described here.

       ::grammar::fa::dacceptordaNamefa ?-anyany?
              Creates a new deterministic acceptor with an associated global Tcl command whose name  is  daName.
              This  command  may  be  used  to  invoke  various operations on the acceptor. It has the following
              general form:

              daNameoption ?argarg...?
                     Option and the args determine the exact behavior  of  the  command.  See  section  ACCEPTORMETHODS for more explanations.

                     The  acceptor  will be based on the deterministic finite automaton stored in the object fa.
                     It will keep a copy of the relevant data of the FA in its own storage, in a  form  easy  to
                     use for its purposes. This also means that changes made to the fa after the construction of
                     the acceptor willnot influence the acceptor.

                     If  any  has  been specified, then the acceptor will convert all symbols in the input which
                     are unknown to the base FA to that symbol before proceeding with the processing.

Bugs, Ideas, Feedback

       This  document,  and  the package it describes, will undoubtedly contain bugs and other problems.  Please
       report such in the category grammar_fa of  the  TcllibTrackers  [http://core.tcl.tk/tcllib/reportlist].
       Please also report any ideas for enhancements you may have for either package and/or documentation.

       When proposing code changes, please provide unifieddiffs, i.e the output of diff-u.

       Note  further  that  attachments  are strongly preferred over inlined patches. Attachments can be made by
       going to the Edit form of the ticket immediately after its creation, and then using the left-most  button
       in the secondary navigation bar.

Category

       Grammars and finite automata

Description

       This  package  provides  a  class  for  acceptors constructed from deterministic finiteautomatons (DFA).
       Acceptors are objects which can be given a string of symbols and tell if the  DFA  they  are  constructed
       from  would  accept  that string.  For the actual creation of the DFAs the acceptors are based on we have
       the packages grammar::fa and grammar::fa::op.

Examples

Keywords

       acceptance, acceptor, automaton, finite automaton, grammar, parsing, regular expression, regular grammar,
       regular languages, state, transducer

Name

       grammar::fa::dacceptor - Create and use deterministic acceptors

Synopsis

       package require Tcl8.59

       package require snit

       package require struct::set

       package require grammar::fa::dacceptor?0.1.2?::grammar::fa::dacceptordaNamefa ?-anyany?

       daNameoption ?argarg...?

       daNamedestroydaNameaccept?symbols

________________________________________________________________________________________________________________

See Also