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