Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
return new Promise((resolve, reject) =>
{
phpParser.parser.locations = true;
phpParser.parser.docBlocks = true;
var ast = phpParser.parseCode(text);
this.BuildObjectTree(ast, filePath).then((tree) =>
{
// TODO -- Convert this to promise
var symbolCache = this.BuildSymbolCache(tree, filePath);
var returnObj = {
tree: tree,
symbolCache: symbolCache
};
// DEBUG
console.log("Built tree for file: " + filePath);
resolve(returnObj);
});
return new Promise((resolve, reject) =>
{
phpParser.parser.locations = true;
phpParser.parser.docBlocks = true;
var ast = phpParser.parseCode(text);
this.BuildObjectTree(ast, filePath).then((tree) =>
{
// TODO -- Convert this to promise
var symbolCache = this.BuildSymbolCache(tree, filePath);
var returnObj = {
tree: tree,
symbolCache: symbolCache
};
// DEBUG
console.log("Built tree for file: " + filePath);
resolve(returnObj);
return new Promise((resolve, reject) =>
{
phpParser.parser.locations = true;
phpParser.parser.docBlocks = true;
var ast = phpParser.parseCode(text);
this.BuildObjectTree(ast, filePath).then((tree) =>
{
// TODO -- Convert this to promise
var symbolCache = this.BuildSymbolCache(tree, filePath);
var returnObj = {
tree: tree,
symbolCache: symbolCache
};
// DEBUG
console.log("Built tree for file: " + filePath);
Trait.prototype.setConstant = function(name, value) {
var constant = this.getConstant(name);
if (!constant) {
// append the function
var ast = parser.parseEval('class a { \n' +
'const ' + name + (
value ? ' = ' + value : ''
) + ';\n' +
' }');
this.ast.body.unshift(
ast.children[0].body[0]
);
} else {
if (typeof value !== 'undefined') constant.setValue(value);
}
return this;
};
Class.prototype.setMethod = function(name, args, body, flags) {
var method = this.getMethod(name);
if (!method) {
// append the function
var ast = parser.parseEval('class a { \n' +
flags + ' function ' + name + '(' + args + ') {\n' +
body + '\n' +
'}\n' +
' }');
this.ast.body.push(
ast.children[0].body[0]
);
} else {
// update the function
if (typeof flags !== 'undefined') method.setFlags(flags);
if (typeof args !== 'undefined') method.setArgs(args);
if (typeof body !== 'undefined') method.setCode(body);
}
return this;
};
Interface.prototype.setMethod = function(name, args, body, flags) {
var method = this.getMethod(name);
if (!method) {
// append the function
var ast = parser.parseEval('class a { \n' +
flags + ' function ' + name + '(' + args + ') {\n' +
body + '\n' +
'}\n' +
' }');
this.ast.body.push(
ast.children[0].body[0]
);
} else {
// update the function
if (typeof flags !== 'undefined') method.setFlags(flags);
if (typeof args !== 'undefined') method.setArgs(args);
if (typeof body !== 'undefined') method.setCode(body);
}
return this;
};
///
import Engine from 'php-parser';
import files from './Filesystem';
import URI from 'vscode-uri';
import { PathLike } from 'fs';
import { TestNode, TestOptions, TestSuiteNode } from './TestNode';
import {
TextDocument,
WorkspaceFolder as _WorkspaceFolder,
} from 'vscode-languageserver';
const engine = Engine.create({
ast: {
withPositions: true,
withSource: true,
},
parser: {
php7: true,
debug: false,
extractDoc: true,
suppressErrors: true,
},
lexer: {
all_tokens: true,
comment_tokens: true,
mode_eval: true,
asp_tags: true,
short_tags: true,
fs.readFile(filename, function(err, data) {
if (!err) {
counter ++;
try {
var ast = parser.parseCode(data.toString(), {
parser: {
extractDoc: true,
debug: isDebug
},
ast: {
withPositions: true
}
});
var code = unparse(ast);
if (isDebug) console.log(code);
if (counter === total) {
console.log('Finished to test ' + total + ' file(s)');
process.exit(0);
}
if (counter % 500 === 0) {
console.log(counter + ' of ' + total + ' - ' + Math.round(counter / total * 100) + '%');
(function parseCode() {
ast = parser.parseEval(code, {
parser: {
extractDoc: true
}
});
}).should.not.throw(code);
this.obj.should.be.Object();
parse(code: string, uri: string): Method[] {
return this.getTests(
Engine.parseCode(code, {
ast: {
withPositions: true,
withSource: true,
},
parser: {
debug: false,
extractDoc: true,
suppressErrors: true,
},
lexer: {
all_tokens: true,
comment_tokens: true,
mode_eval: true,
asp_tags: true,
short_tags: true,
},