Parser
in package
Parsing algorithms
Tags
Table of Contents
- compileForeach() : string
- Method processes 'foreach' macro
- compilePrint() : string
- Method processes 'print' macro
- compileSwitch() : string
- Method processes 'switch' macro
- compileValues() : string
- Method processes values substitution
- getBlockData() : mixed
- Method returns content between {$blockStart} and {$blockEnd} tags
- getBlockPositions() : array<string|int, mixed>
- Method returns block's start and end
- getMacroParameters() : string|bool
- Method fetches macro parameters
- printRecord() : string
- Method replaces all {var-name} placeholders in $string with fields from $record
- replaceBlock() : string
- Method replaces block with content
- unwrapBlocks() : string
- Method unwraps data
- applyForeachData() : string
- Method applyes data for foreach block content
- applyPrintData() : string
- Method applyes data for print block content
- areTerminalParams() : bool
- Method returns true if the params are terminal, false otherwise
- findMacro() : string|bool
- Getting macro start
- getAllBlockPositions() : array<string|int, mixed>
- Method returns block's start and end
- getPossibleBlockPositions() : array<string|int, mixed>
- Method returns starts and ends of the block
- handleMacroEnd() : void
- Getting macro end
- handleMacroStart() : void
- Getting macro start
- handleMacroStartEnd() : void
- Getting macro bounds
Methods
compileForeach()
Method processes 'foreach' macro
public
static compileForeach(string $string, mixed &$record) : string
Parameters
- $string : string
-
processing string
- $record : mixed
-
printing record
Return values
string —Processed string
compilePrint()
Method processes 'print' macro
public
static compilePrint(string $string, mixed &$record) : string
Parameters
- $string : string
-
processing string
- $record : mixed
-
printing record
Tags
Return values
string —processed string
compileSwitch()
Method processes 'switch' macro
public
static compileSwitch(string $string) : string
Parameters
- $string : string
-
processing string
Tags
Return values
string —Processed string
compileValues()
Method processes values substitution
public
static compileValues(string $string, array<string|int, mixed>|object $record) : string
Parameters
- $string : string
-
processing string
- $record : array<string|int, mixed>|object
-
printing record
Return values
string —Processed string
getBlockData()
Method returns content between {$blockStart} and {$blockEnd} tags
public
static getBlockData(string $string, string $blockStart, string $blockEnd) : mixed
Parameters
- $string : string
-
processing string
- $blockStart : string
-
start of the block
- $blockEnd : string
-
end of the block
Tags
Return values
mixed —block content. Or false if the block was not found
getBlockPositions()
Method returns block's start and end
public
static getBlockPositions(string $string, string $blockStart, string $blockEnd) : array<string|int, mixed>
Parameters
- $string : string
-
Parsing string
- $blockStart : string
-
Block start
- $blockEnd : string
-
Block end
Return values
array<string|int, mixed> —Positions of the beginning and the end
getMacroParameters()
Method fetches macro parameters
public
static getMacroParameters(string $string, string $name[, int|bool $startPos = -1 ]) : string|bool
Parameters
- $string : string
-
string to be parsed
- $name : string
-
macro name
- $startPos : int|bool = -1
-
starting position of the search
Return values
string|bool —Macro parameters or false if the macro was not found
printRecord()
Method replaces all {var-name} placeholders in $string with fields from $record
public
static printRecord(string $string, array<string|int, mixed>|object|mixed $record) : string
Parameters
- $string : string
-
processing string
- $record : array<string|int, mixed>|object|mixed
-
printing record
Return values
string —replaceBlock()
Method replaces block with content
public
static replaceBlock(string $str, string $blockStart, string $blockEnd, string $content) : string
Parameters
- $str : string
-
string to process
- $blockStart : string
-
starting marker of the block
- $blockEnd : string
-
ending marker of the block
- $content : string
-
content to replace block
Tags
Return values
string —processed string
unwrapBlocks()
Method unwraps data
public
static unwrapBlocks(string $string, array<string|int, mixed>|object $record) : string
Parameters
- $string : string
-
processing string
- $record : array<string|int, mixed>|object
-
printing record
Tags
Return values
string —processed string
applyForeachData()
Method applyes data for foreach block content
protected
static applyForeachData(string $str, string $parameters, mixed $data) : string
Parameters
- $str : string
-
string to process
- $parameters : string
-
block parameters
- $data : mixed
-
replacement data
Tags
Return values
string —Processed string
applyPrintData()
Method applyes data for print block content
protected
static applyPrintData(string $str, string $parameters, mixed $data) : string
Parameters
- $str : string
-
string to process
- $parameters : string
-
block parameters
- $data : mixed
-
replacement data
Tags
Return values
string —Processed string
areTerminalParams()
Method returns true if the params are terminal, false otherwise
protected
static areTerminalParams(string $parameters) : bool
Parameters
- $parameters : string
-
Parameters to be analized
Return values
bool —true if the params are terminal, false otherwise
findMacro()
Getting macro start
protected
static findMacro(string &$stringData, int|bool &$tmpStartPos, int|bool &$tmpEndPos, int|bool &$startPos, int &$counter, int $macroStartPos, int $paramStartPos) : string|bool
Parameters
- $stringData : string
-
parsing string
- $tmpStartPos : int|bool
-
search temporary starting position
- $tmpEndPos : int|bool
-
search temporary ending position
- $startPos : int|bool
-
search starting position
- $counter : int
-
brackets counter
- $macroStartPos : int
-
position of the macro
- $paramStartPos : int
-
position of macro's parameters
Return values
string|bool —macro parameters or false otherwise
getAllBlockPositions()
Method returns block's start and end
protected
static getAllBlockPositions(string $string, string $blockStart, string $blockEnd) : array<string|int, mixed>
Parameters
- $string : string
-
Parsing string
- $blockStart : string
-
Block start
- $blockEnd : string
-
Block end
Return values
array<string|int, mixed> —Starting and ending positions of the block
getPossibleBlockPositions()
Method returns starts and ends of the block
protected
static getPossibleBlockPositions(array<string|int, mixed> &$positions) : array<string|int, mixed>
Parameters
- $positions : array<string|int, mixed>
-
Starting and ending positions of the blocks
Tags
Return values
array<string|int, mixed> —Updated positions
handleMacroEnd()
Getting macro end
protected
static handleMacroEnd(int|bool $tmpStartPos, int|bool $tmpEndPos, int|bool &$startPos, int &$counter, int $macroStartPos) : void
Parameters
- $tmpStartPos : int|bool
-
Search temporary starting position
- $tmpEndPos : int|bool
-
Search temporary ending position
- $startPos : int|bool
-
Search starting position
- $counter : int
-
Brackets counter
- $macroStartPos : int
-
Position of the macro
Return values
void —handleMacroStart()
Getting macro start
protected
static handleMacroStart(int|bool $tmpStartPos, int|bool $tmpEndPos, int|bool &$startPos, int &$counter) : void
Parameters
- $tmpStartPos : int|bool
-
Search temporary starting position
- $tmpEndPos : int|bool
-
Search temporary ending position
- $startPos : int|bool
-
Search starting position
- $counter : int
-
Brackets counter
Return values
void —handleMacroStartEnd()
Getting macro bounds
protected
static handleMacroStartEnd(string &$stringData, int|bool &$tmpStartPos, int|bool &$tmpEndPos, int|bool &$startPos, int &$counter, int $macroStartPos) : void
Parameters
- $stringData : string
-
Parsing string
- $tmpStartPos : int|bool
-
Search temporary starting position
- $tmpEndPos : int|bool
-
Search temporary ending position
- $startPos : int|bool
-
Search starting position
- $counter : int
-
Brackets counter
- $macroStartPos : int
-
Position of the macro