function match_StringLiteral($stack = array())
{
$matchrule = "StringLiteral";
$result = $this->construct($matchrule, $matchrule, null);
$_20 = NULL;
do {
$res_17 = $result;
$pos_17 = $this->pos;
$matcher = 'match_' . 'SingleQuotedStringLiteral';
$key = $matcher;
$pos = $this->pos;
$subres = $this->packhas($key, $pos) ? $this->packread($key, $pos) : $this->packwrite($key, $pos, $this->{$matcher}(array_merge($stack, array($result))));
if ($subres !== FALSE) {
$this->store($result, $subres);
$_20 = TRUE;
break;
}
$result = $res_17;
$this->pos = $pos_17;
$matcher = 'match_' . 'DoubleQuotedStringLiteral';
$key = $matcher;
$pos = $this->pos;
$subres = $this->packhas($key, $pos) ? $this->packread($key, $pos) : $this->packwrite($key, $pos, $this->{$matcher}(array_merge($stack, array($result))));
if ($subres !== FALSE) {
$this->store($result, $subres);
$_20 = TRUE;
break;
}
$result = $res_17;
$this->pos = $pos_17;
$_20 = FALSE;
break;
} while (0);
if ($_20 === TRUE) {
return $this->finalise($result);
}
if ($_20 === FALSE) {
return FALSE;
}
}