MCPcopy
hub / github.com/josdejong/mathjs / parseObject

Function parseObject

src/expression/parse.js:1688–1735  ·  view source on GitHub ↗

* parse an object, enclosed in angle brackets{...}, for example {value: 2} * @return {Node} node * @private

(state)

Source from the content-addressed store, hash-verified

1686 * @private
1687 */
1688 function parseObject (state) {
1689 if (state.token === '{') {
1690 openParams(state)
1691 let key
1692
1693 const properties = {}
1694 do {
1695 getToken(state)
1696
1697 if (state.token !== '}') {
1698 // parse key
1699 if (state.token === '"' || state.token === "'") {
1700 key = parseStringToken(state, state.token)
1701 } else if (state.tokenType === TOKENTYPE.SYMBOL || (state.tokenType === TOKENTYPE.DELIMITER && state.token in NAMED_DELIMITERS)) {
1702 key = state.token
1703 getToken(state)
1704 } else {
1705 throw createSyntaxError(state, 'Symbol or string expected as object key')
1706 }
1707
1708 // parse key/value separator
1709 if (state.token !== ':') {
1710 throw createSyntaxError(state, 'Colon : expected after object key')
1711 }
1712 getToken(state)
1713
1714 // parse key
1715 properties[key] = parseAssignment(state)
1716 }
1717 }
1718 while (state.token === ',') // eslint-disable-line no-unmodified-loop-condition
1719
1720 if (state.token !== '}') {
1721 throw createSyntaxError(state, 'Comma , or bracket } expected after object value')
1722 }
1723 closeParams(state)
1724 getToken(state)
1725
1726 let node = new ObjectNode(properties)
1727
1728 // parse index parameters
1729 node = parseAccessors(state, node)
1730
1731 return node
1732 }
1733
1734 return parseNumber(state)
1735 }
1736
1737 /**
1738 * parse a number

Callers 1

parseMatrixFunction · 0.85

Calls 8

openParamsFunction · 0.85
getTokenFunction · 0.85
parseStringTokenFunction · 0.85
createSyntaxErrorFunction · 0.85
parseAssignmentFunction · 0.85
closeParamsFunction · 0.85
parseAccessorsFunction · 0.85
parseNumberFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…