-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patharrayParser.js
More file actions
30 lines (26 loc) · 828 Bytes
/
arrayParser.js
File metadata and controls
30 lines (26 loc) · 828 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const fs = require('fs')
const valueParser = require('./valueParser')
const objectParser = require('./objectParser')
const data = fs.readFileSync(
'D:\\Geekskool\\JSONParser\\inputString.txt',
'utf8'
)
function arrayParser (data) {
const ans = []
if (!data.startsWith('[')) return null
data = data.slice(1).trim()
while (data.length !== 0 && data[0] !== ']') {
data = data.trim()
const valueParserValue =
valueParser(data) || arrayParser(data) || objectParser(data)
if (!valueParserValue) return null
ans.push(valueParserValue[0])
data = valueParserValue[1].trim()
if (data[0] !== ',') break
data = data.slice(1).trim()
if (data[0] === ']') return null
}
return data[0] === ']' ? [ans, data.slice(1)] : null
}
console.log(arrayParser(data))
module.exports = arrayParser