niceforbear/sparser

parser of string

v0.1.2 2016-06-19 09:46 UTC

This package is not auto-updated.

Last update: 2024-09-18 19:19:17 UTC


README

Install

Via Composer

$ composer require niceforbear/sparser

Usage

$context = new Context();
$user_in = "\$input equals '4' or \$input equals 'four'";
$reader = new StringReader($user_in);
$scanner = new Scanner($reader, $context);

while ($scanner->nextToken() != Scanner::EOF) {
    print $scanner->token();
    print "\t{$scanner->char_no()}";
    print "\t{$scanner->getTypeString()}\n";
}
$input = 'five';
$statement = "( \$input equals 'five')";

$engine = new MarkParse($statement);
$result = $engine->evaluate($input);
print "input: $input evaluating: $statement\n";
if($result){
    print "true!\n";
}else{
    print "false!\n";
}

Testing

Tests unavailable.

Contributing

Please see CONTRIBUTING for details.

Credits

License

The MIT License (MIT). Please see License File for more information.

About EBNF

  • expr ::= operand (orExpr | andExpr) *
  • operand ::= ( '(' expr ')' | | variable ) (eqExpr) *
  • orExpr ::= 'or' operand
  • andExpr ::= 'and' operand
  • eqExpr ::= 'equals' operand
  • variable ::= '$'