Overview

Namespaces

  • BN
    • Collections
    • Compiler
      • Grammar
      • Parser
        • Operator
        • Token
      • Postfix
        • Operands
        • Operator
        • Token
      • Scanner
        • Converter
      • Token
  • Demo
  • None

Classes

  • LexemeToToken
  • LexemeToTokens
  • Scanner
  • Statement
  • UnarySignsScanner

Interfaces

  • LexemeConverter
  • Overview
  • Namespace
  • Class
  • Tree
 1: <?php
 2: 
 3: namespace BN\Compiler\Scanner;
 4: 
 5: class UnarySignsScanner
 6: {
 7:     private $scanner;
 8:     private $unarySigns;
 9: 
10:     public function __construct(Scanner $scanner, array $unarySigns)
11:     {
12:         $this->scanner = $scanner;
13:         $this->unarySigns = $unarySigns;
14:     }
15: 
16:     public function tokenize($text)
17:     {
18:         $fixed = $this->addSpaceAroundSigns($text);
19:         return $this->scanner->tokenize($fixed);
20:     }
21: 
22:     private function addSpaceAroundSigns($text)
23:     {
24:         $replaced = $text;
25:         foreach ($this->unarySigns as $sign) {
26:             $replaced = preg_replace("~(?<=[0-9])\\{$sign}(?=[0-9])~", " {$sign} ", $replaced);
27:         }
28:         return $replaced;
29:     }
30: }
31: 
BN-PHP - Big Number data type for PHP API documentation generated by ApiGen 2.8.0