phpegjs
Version:
PHP target for PEG.js parser generator
31 lines (27 loc) • 783 B
JavaScript
var js = require( 'pegjs/lib/compiler/js' );
exports.quote = function( str ) {
return '"' + js.stringEscape( str ) + '"';
}
// Matches: /** <?php
var regexPhpStart = /\/\*\*\s*<\?php/;
// Matches: ?> **/
var regexPhpEnd = /\?>\s*\*\*\//;
// Matches either kind of delimiter
var regexPhpDelimiters = new RegExp(
'(' + regexPhpStart.source + '|' + regexPhpEnd.source + ')'
);
exports.extractPhpCode = function( code ) {
var codePieces = code.split( regexPhpDelimiters );
var phpCode = '';
var insidePhp = false;
codePieces.forEach( function( piece ) {
if ( regexPhpStart.test( piece ) ) {
insidePhp = true;
} else if ( regexPhpEnd.test( piece ) ) {
insidePhp = false;
} else if ( insidePhp ) {
phpCode += piece;
}
} );
return phpCode ? phpCode : code;
};