28 lines
771 B
JavaScript
Executable File
28 lines
771 B
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
// Parse arguments
|
|
var args = process.argv.slice(2);
|
|
let strictMode = false;
|
|
if (args.length > 1) {
|
|
if (args[0] !== '--strict') {
|
|
console.error('usage: sparql-to-json query.sparql');
|
|
return process.exit(1);
|
|
} else {
|
|
strictMode = true;
|
|
// Shift arguments
|
|
args.shift();
|
|
}
|
|
}
|
|
|
|
var fs = require('fs'),
|
|
SparqlParser = require('../sparql').Parser;
|
|
|
|
// Parse and display the query
|
|
var query = '', source = args[0] ? fs.createReadStream(args[0]) : process.stdin;
|
|
source.setEncoding('utf8');
|
|
source.on('data', function (data) { query += data; });
|
|
source.on('end', function () {
|
|
var parseTree = new SparqlParser({ sparqlStar: !strictMode }).parse(query);
|
|
process.stdout.write(JSON.stringify(parseTree, null, ' ') + '\n');
|
|
});
|