智能照明系统APP-本地串口
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
LightingSystemApp-serial/.svn/pristine/06/0693dbc2aab4a7ac1a0b369b341...

61 lines
1.6 KiB

3 years ago
var mdnAtrules = require('mdn-data/css/at-rules.json');
var mdnProperties = require('mdn-data/css/properties.json');
var mdnSyntaxes = require('mdn-data/css/syntaxes.json');
var patch = require('./patch.json');
function preprocessAtrules(dict) {
var result = Object.create(null);
for (var atruleName in dict) {
var atrule = dict[atruleName];
var descriptors = null;
if (atrule.descriptors) {
descriptors = Object.create(null);
for (var descriptor in atrule.descriptors) {
descriptors[descriptor] = atrule.descriptors[descriptor].syntax;
}
}
result[atruleName.substr(1)] = {
prelude: atrule.syntax.trim().match(/^@\S+\s+([^;\{]*)/)[1].trim() || null,
descriptors
};
}
return result;
}
function buildDictionary(dict, patchDict) {
var result = {};
// copy all syntaxes for an original dict
for (var key in dict) {
result[key] = dict[key].syntax;
}
// apply a patch
for (var key in patchDict) {
if (key in dict) {
if (patchDict[key].syntax) {
result[key] = patchDict[key].syntax;
} else {
delete result[key];
}
} else {
if (patchDict[key].syntax) {
result[key] = patchDict[key].syntax;
}
}
}
return result;
}
module.exports = {
types: buildDictionary(mdnSyntaxes, patch.syntaxes),
atrules: preprocessAtrules(mdnAtrules),
properties: buildDictionary(mdnProperties, patch.properties)
};