UNPKG

phpegjs

Version:

PHP target for PEG.js parser generator

31 lines (27 loc) 783 B
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; };