Acme.BookStore.HttpApi.Host/node_modules/spdx-expression-parse/parse.js
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
'use strict'
// The ABNF grammar in the spec is totally ambiguous.
//
// This parser follows the operator precedence defined in the
// `Order of Precedence and Parentheses` section.
module.exports = function (tokens) {
var index = 0
function hasMore () {
return index < tokens.length
}
function token () {
return hasMore() ? tokens[index] : null
}
function next () {
if (!hasMore()) {
throw new Error()
}
index++
}
function parseOperator (operator) {
var t = token()
if (t && t.type === 'OPERATOR' && operator === t.string) {
next()
return t.string
}
}
function parseWith () {
if (parseOperator('WITH')) {
var t = token()
if (t && t.type === 'EXCEPTION') {
next()
return t.string
}
throw new Error('Expected exception after `WITH`')
}
}
function parseLicenseRef () {
// TODO: Actually, everything is concatenated into one string
// for backward-compatibility but it could be better to return
// a nice structure.
var begin = index
var string = ''
var t = token()
if (t.type === 'DOCUMENTREF') {
next()
string += 'DocumentRef-' + t.string + ':'
if (!parseOperator(':')) {
throw new Error('Expected `:` after `DocumentRef-...`')
}
}
t = token()
if (t.type === 'LICENSEREF') {
后面还有 78 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明
AI 解读
登录后可用,每次 10 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
