NAME
Logic::Expr - logical expression parsing and related routines
SYNOPSIS
use Logic::Expr::Parser;
# Parser::MGC also supports "from_file"
my $le = Logic::Expr::Parser->new->from_string('Xv~Y');
# and then see Logic::Expr for uses of the $le object
DESCRIPTION
This module parses logic expressions and returns a Logic::Expr object, which in turn has various methods for acting on the expression thus parsed.
Parser::MGC is the parent class used to parse the expressions; from_string and from_file are the most relevant methods.
SYNTAX SANS EBNF
The usual atomic letters (X
, Y
, etc) are extended to include words in capital letters to allow for more than 26 atoms, or at least more descriptive names, for better or worse.
Operators include !
or ~
for negation of the subsequent atom or parenthesized term, and the binary operators
| v or TTTF lojban .a
& and TFFF lojban .e
-> conditional TFTT lojban .a with first term negated
== biconditional TFFT lojban .o
which taken together allow for such expressions as
X&!Y
GILBERT&SULLIVAN
(CAT|DOG)->FISH
ALIENvPREDICATOR
ETC
MINUTIAE
Code coverage tools can be persnickety about these sorts of things.
- on_parse_end
-
Internal Parser::MGC hook function.
- parse
-
Internal Parser::MGC function.
BUGS
None known.
COPYRIGHT AND LICENSE
Copyright 2022 Jeremy Mates
This program is distributed under the (Revised) BSD License: https://opensource.org/licenses/BSD-3-Clause