diff --git a/src/index.ts b/src/index.ts index e16ea3dd0db16ae108ca360ca914d0ca486507aa..e20061a1285f910b291863a4776f1663a706478f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> diff --git a/src/reader/cif/binary/decoder.ts b/src/reader/cif/binary/decoder.ts index f6c587f37211c5f161500b997920e6b1861a5084..2e06613900110aa4b9f463be8764b1d9453e1c45 100644 --- a/src/reader/cif/binary/decoder.ts +++ b/src/reader/cif/binary/decoder.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * From CIFTools.js diff --git a/src/reader/cif/binary/encoding.ts b/src/reader/cif/binary/encoding.ts index c9369e96445ae0aec351c990a3b5f20cedbaa17e..6bf50cf1a8db22ee8fc4657b3cff4208965b4cf9 100644 --- a/src/reader/cif/binary/encoding.ts +++ b/src/reader/cif/binary/encoding.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * From CIFTools.js diff --git a/src/reader/cif/binary/field.ts b/src/reader/cif/binary/field.ts index 974dd522b05f41515bf7b664d906911d3b41e0db..4d668b5817e24d1fa776467bb58844f9912183d1 100644 --- a/src/reader/cif/binary/field.ts +++ b/src/reader/cif/binary/field.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> diff --git a/src/reader/cif/binary/parser.ts b/src/reader/cif/binary/parser.ts index 318bd61bf141106adac00e9842de63c24efd7dec..958f6bfa291aef580a6d56ac3f1adaca1cc510cc 100644 --- a/src/reader/cif/binary/parser.ts +++ b/src/reader/cif/binary/parser.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> diff --git a/src/reader/cif/data-model.ts b/src/reader/cif/data-model.ts index a28af149d2e7bf32420594bc36823800b638cc18..fdc54b5f6a4fbc09ca711cdd21d2a082b893a806 100644 --- a/src/reader/cif/data-model.ts +++ b/src/reader/cif/data-model.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> diff --git a/src/reader/cif/index.ts b/src/reader/cif/index.ts index e7dcc0f880df91790107951e808c52f2603c721e..fad12ae1b6d19dbe8c6d0698c94530937846de7e 100644 --- a/src/reader/cif/index.ts +++ b/src/reader/cif/index.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> diff --git a/src/reader/cif/schema.ts b/src/reader/cif/schema.ts index f6c058f58978af794f5b14fe610cf2a2f37b5ead..28f2afca2d78d3956ce2ac46fd1d8bfa11f0585d 100644 --- a/src/reader/cif/schema.ts +++ b/src/reader/cif/schema.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> diff --git a/src/reader/cif/schema/mmcif.ts b/src/reader/cif/schema/mmcif.ts index fdca87dc91dc119f247b727afeadf7a3834068d4..a6ce231e46860e541f57b744fb44107b324680f5 100644 --- a/src/reader/cif/schema/mmcif.ts +++ b/src/reader/cif/schema/mmcif.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> diff --git a/src/reader/cif/text/field.ts b/src/reader/cif/text/field.ts index 7f0951fb1b5cac66e6ec8afc163fb0d806082207..ecf14c3618d7a49c493c34bbcc89a7054c13ada6 100644 --- a/src/reader/cif/text/field.ts +++ b/src/reader/cif/text/field.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> diff --git a/src/reader/cif/text/parser.ts b/src/reader/cif/text/parser.ts index 7647125796ce818c2c7dbaa959f60f657c59a687..b7f593f864e70d607e1d9dd1f46381691cee24e5 100644 --- a/src/reader/cif/text/parser.ts +++ b/src/reader/cif/text/parser.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> @@ -48,10 +48,10 @@ interface TokenizerState { length: number; isEscaped: boolean; - currentLineNumber: number; - currentTokenType: CifTokenType; - currentTokenStart: number; - currentTokenEnd: number; + lineNumber: number; + tokenType: CifTokenType; + tokenStart: number; + tokenEnd: number; chunker: Computation.Chunker } @@ -66,14 +66,14 @@ function eatValue(state: TokenizerState) { case 10: // \n case 13: // \r case 32: // ' ' - state.currentTokenEnd = state.position; + state.tokenEnd = state.position; return; default: ++state.position; break; } } - state.currentTokenEnd = state.position; + state.tokenEnd = state.position; } /** @@ -99,16 +99,16 @@ function eatEscaped(state: TokenizerState, esc: number) { case 13: // \r case 32: // ' ' // get rid of the quotes. - state.currentTokenStart++; - state.currentTokenEnd = state.position; + state.tokenStart++; + state.tokenEnd = state.position; state.isEscaped = true; ++state.position; return; default: if (next === void 0) { // = "end of stream" // get rid of the quotes. - state.currentTokenStart++; - state.currentTokenEnd = state.position; + state.tokenStart++; + state.tokenEnd = state.position; state.isEscaped = true; ++state.position; return; @@ -119,14 +119,14 @@ function eatEscaped(state: TokenizerState, esc: number) { } else { // handle 'xxxNEWLINE => 'xxx if (c === 10 || c === 13) { - state.currentTokenEnd = state.position; + state.tokenEnd = state.position; return; } ++state.position; } } - state.currentTokenEnd = state.position; + state.tokenEnd = state.position; } /** @@ -139,7 +139,7 @@ function eatMultiline(state: TokenizerState) { if (c === 59 && (prev === 10 || prev === 13)) { // ;, \n \r state.position = pos + 1; // get rid of the ; - state.currentTokenStart++; + state.tokenStart++; // remove trailing newlines pos--; @@ -148,16 +148,16 @@ function eatMultiline(state: TokenizerState) { pos--; c = state.data.charCodeAt(pos); } - state.currentTokenEnd = pos + 1; + state.tokenEnd = pos + 1; state.isEscaped = true; return; } else { // handle line numbers if (c === 13) { // \r - state.currentLineNumber++; + state.lineNumber++; } else if (c === 10 && prev !== 13) { // \r\n - state.currentLineNumber++; + state.lineNumber++; } prev = c; @@ -199,7 +199,7 @@ function skipWhitespace(state: TokenizerState): number { case 10: // \n // handle \r\n if (prev !== 13) { - ++state.currentLineNumber; + ++state.lineNumber; } prev = c; ++state.position; @@ -207,7 +207,7 @@ function skipWhitespace(state: TokenizerState): number { case 13: // \r prev = c; ++state.position; - ++state.currentLineNumber; + ++state.lineNumber; break; default: return prev; @@ -220,16 +220,16 @@ function isData(state: TokenizerState): boolean { // here we already assume the 5th char is _ and that the length >= 5 // d/D - let c = state.data.charCodeAt(state.currentTokenStart); + let c = state.data.charCodeAt(state.tokenStart); if (c !== 68 && c !== 100) return false; // a/A - c = state.data.charCodeAt(state.currentTokenStart + 1); + c = state.data.charCodeAt(state.tokenStart + 1); if (c !== 65 && c !== 97) return false; // t/t - c = state.data.charCodeAt(state.currentTokenStart + 2); + c = state.data.charCodeAt(state.tokenStart + 2); if (c !== 84 && c !== 116) return false; // a/A - c = state.data.charCodeAt(state.currentTokenStart + 3); + c = state.data.charCodeAt(state.tokenStart + 3); if (c !== 65 && c !== 97) return false; return true; @@ -239,16 +239,16 @@ function isSave(state: TokenizerState): boolean { // here we already assume the 5th char is _ and that the length >= 5 // s/S - let c = state.data.charCodeAt(state.currentTokenStart); + let c = state.data.charCodeAt(state.tokenStart); if (c !== 83 && c !== 115) return false; // a/A - c = state.data.charCodeAt(state.currentTokenStart + 1); + c = state.data.charCodeAt(state.tokenStart + 1); if (c !== 65 && c !== 97) return false; // v/V - c = state.data.charCodeAt(state.currentTokenStart + 2); + c = state.data.charCodeAt(state.tokenStart + 2); if (c !== 86 && c !== 118) return false; // e/E - c = state.data.charCodeAt(state.currentTokenStart + 3); + c = state.data.charCodeAt(state.tokenStart + 3); if (c !== 69 && c !== 101) return false; return true; @@ -257,19 +257,19 @@ function isSave(state: TokenizerState): boolean { function isLoop(state: TokenizerState): boolean { // here we already assume the 5th char is _ and that the length >= 5 - if (state.currentTokenEnd - state.currentTokenStart !== 5) return false; + if (state.tokenEnd - state.tokenStart !== 5) return false; // l/L - let c = state.data.charCodeAt(state.currentTokenStart); + let c = state.data.charCodeAt(state.tokenStart); if (c !== 76 && c !== 108) return false; // o/O - c = state.data.charCodeAt(state.currentTokenStart + 1); + c = state.data.charCodeAt(state.tokenStart + 1); if (c !== 79 && c !== 111) return false; // o/O - c = state.data.charCodeAt(state.currentTokenStart + 2); + c = state.data.charCodeAt(state.tokenStart + 2); if (c !== 79 && c !== 111) return false; // p/P - c = state.data.charCodeAt(state.currentTokenStart + 3); + c = state.data.charCodeAt(state.tokenStart + 3); if (c !== 80 && c !== 112) return false; return true; @@ -281,8 +281,8 @@ function isLoop(state: TokenizerState): boolean { function isNamespace(state: TokenizerState, start: number, end: number): boolean { let i: number, nsLen = end - start, - offset = state.currentTokenStart - start, - tokenLen = state.currentTokenEnd - state.currentTokenStart; + offset = state.tokenStart - start, + tokenLen = state.tokenEnd - state.tokenStart; if (tokenLen < nsLen) return false; @@ -303,7 +303,7 @@ function isNamespace(state: TokenizerState, start: number, end: number): boolean */ function getNamespaceEnd(state: TokenizerState): number { let i: number; - for (i = state.currentTokenStart; i < state.currentTokenEnd; ++i) { + for (i = state.tokenStart; i < state.tokenEnd; ++i) { if (state.data.charCodeAt(i) === 46) return i; } return i; @@ -313,14 +313,14 @@ function getNamespaceEnd(state: TokenizerState): number { * Get the namespace string. endIndex is obtained by the getNamespaceEnd() function. */ function getNamespace(state: TokenizerState, endIndex: number) { - return state.data.substring(state.currentTokenStart, endIndex); + return state.data.substring(state.tokenStart, endIndex); } /** * String representation of the current token. */ function getTokenString(state: TokenizerState) { - return state.data.substring(state.currentTokenStart, state.currentTokenEnd); + return state.data.substring(state.tokenStart, state.tokenEnd); } /** @@ -330,23 +330,23 @@ function moveNextInternal(state: TokenizerState) { let prev = skipWhitespace(state); if (state.position >= state.length) { - state.currentTokenType = CifTokenType.End; + state.tokenType = CifTokenType.End; return; } - state.currentTokenStart = state.position; - state.currentTokenEnd = state.position; + state.tokenStart = state.position; + state.tokenEnd = state.position; state.isEscaped = false; let c = state.data.charCodeAt(state.position); switch (c) { case 35: // #, comment skipCommentLine(state); - state.currentTokenType = CifTokenType.Comment; + state.tokenType = CifTokenType.Comment; break; case 34: // ", escaped value case 39: // ', escaped value eatEscaped(state, c); - state.currentTokenType = CifTokenType.Value; + state.tokenType = CifTokenType.Value; break; case 59: // ;, possible multiline value // multiline value must start at the beginning of the line. @@ -355,25 +355,25 @@ function moveNextInternal(state: TokenizerState) { } else { eatValue(state); } - state.currentTokenType = CifTokenType.Value; + state.tokenType = CifTokenType.Value; break; default: eatValue(state); // escaped is always Value if (state.isEscaped) { - state.currentTokenType = CifTokenType.Value; + state.tokenType = CifTokenType.Value; // _ always means column name - } else if (state.data.charCodeAt(state.currentTokenStart) === 95) { // _ - state.currentTokenType = CifTokenType.ColumnName; + } else if (state.data.charCodeAt(state.tokenStart) === 95) { // _ + state.tokenType = CifTokenType.ColumnName; // 5th char needs to be _ for data_ or loop_ - } else if (state.currentTokenEnd - state.currentTokenStart >= 5 && state.data.charCodeAt(state.currentTokenStart + 4) === 95) { - if (isData(state)) state.currentTokenType = CifTokenType.Data; - else if (isSave(state)) state.currentTokenType = CifTokenType.Save; - else if (isLoop(state)) state.currentTokenType = CifTokenType.Loop; - else state.currentTokenType = CifTokenType.Value; + } else if (state.tokenEnd - state.tokenStart >= 5 && state.data.charCodeAt(state.tokenStart + 4) === 95) { + if (isData(state)) state.tokenType = CifTokenType.Data; + else if (isSave(state)) state.tokenType = CifTokenType.Save; + else if (isLoop(state)) state.tokenType = CifTokenType.Loop; + else state.tokenType = CifTokenType.Value; // all other tests failed, we are at Value token. } else { - state.currentTokenType = CifTokenType.Value; + state.tokenType = CifTokenType.Value; } break; } @@ -384,7 +384,7 @@ function moveNextInternal(state: TokenizerState) { */ function moveNext(state: TokenizerState) { moveNextInternal(state); - while (state.currentTokenType === CifTokenType.Comment) moveNextInternal(state); + while (state.tokenType === CifTokenType.Comment) moveNextInternal(state); } function createTokenizer(data: string, ctx: Computation.Context): TokenizerState { @@ -392,10 +392,10 @@ function createTokenizer(data: string, ctx: Computation.Context): TokenizerState data, length: data.length, position: 0, - currentTokenStart: 0, - currentTokenEnd: 0, - currentTokenType: CifTokenType.End, - currentLineNumber: 1, + tokenStart: 0, + tokenEnd: 0, + tokenType: CifTokenType.End, + lineNumber: 1, isEscaped: false, chunker: Computation.chunker(ctx, 1000000) @@ -415,27 +415,27 @@ interface CifCategoryResult { * Reads a category containing a single row. */ function handleSingle(tokenizer: TokenizerState, categories: { [name: string]: Data.Category }): CifCategoryResult { - const nsStart = tokenizer.currentTokenStart, nsEnd = getNamespaceEnd(tokenizer); + const nsStart = tokenizer.tokenStart, nsEnd = getNamespaceEnd(tokenizer); const name = getNamespace(tokenizer, nsEnd); const fields = Object.create(null); let readingNames = true; while (readingNames) { - if (tokenizer.currentTokenType !== CifTokenType.ColumnName || !isNamespace(tokenizer, nsStart, nsEnd)) { + if (tokenizer.tokenType !== CifTokenType.ColumnName || !isNamespace(tokenizer, nsStart, nsEnd)) { readingNames = false; break; } const fieldName = getTokenString(tokenizer).substring(name.length + 1); moveNext(tokenizer); - if (tokenizer.currentTokenType as any !== CifTokenType.Value) { + if (tokenizer.tokenType as any !== CifTokenType.Value) { return { hasError: true, - errorLine: tokenizer.currentLineNumber, + errorLine: tokenizer.lineNumber, errorMessage: 'Expected value.' } } - fields[fieldName] = Field({ data: tokenizer.data, indices: [tokenizer.currentTokenStart, tokenizer.currentTokenEnd], count: 1 }, 1); + fields[fieldName] = Field({ data: tokenizer.data, indices: [tokenizer.tokenStart, tokenizer.tokenEnd], count: 1 }, 1); moveNext(tokenizer); } @@ -459,8 +459,8 @@ function readLoopChunk(state: LoopReadState, chunkSize: number) { const { tokenizer, tokens, fieldCount } = state; let tokenCount = state.tokenCount; let counter = 0; - while (tokenizer.currentTokenType === CifTokenType.Value && counter < chunkSize) { - TokenBuilder.add(tokens[(tokenCount++) % fieldCount], tokenizer.currentTokenStart, tokenizer.currentTokenEnd); + while (tokenizer.tokenType === CifTokenType.Value && counter < chunkSize) { + TokenBuilder.add(tokens[(tokenCount++) % fieldCount], tokenizer.tokenStart, tokenizer.tokenEnd); moveNext(tokenizer); counter++; } @@ -478,13 +478,13 @@ function readLoopChunks(state: LoopReadState) { * Reads a loop. */ async function handleLoop(tokenizer: TokenizerState, categories: { [name: string]: Data.Category }): Promise<CifCategoryResult> { - const loopLine = tokenizer.currentLineNumber; + const loopLine = tokenizer.lineNumber; moveNext(tokenizer); const name = getNamespace(tokenizer, getNamespaceEnd(tokenizer)); const fieldNames: string[] = []; - while (tokenizer.currentTokenType === CifTokenType.ColumnName) { + while (tokenizer.tokenType === CifTokenType.ColumnName) { fieldNames[fieldNames.length] = getTokenString(tokenizer).substring(name.length + 1); moveNext(tokenizer); } @@ -506,7 +506,7 @@ async function handleLoop(tokenizer: TokenizerState, categories: { [name: string if (state.tokenCount % fieldCount !== 0) { return { hasError: true, - errorLine: tokenizer.currentLineNumber, + errorLine: tokenizer.lineNumber, errorMessage: 'The number of values for loop starting at line ' + loopLine + ' is not a multiple of the number of columns.' }; } @@ -558,8 +558,8 @@ async function parseInternal(data: string, ctx: Computation.Context) { ctx.updateProgress({ message: 'Parsing...' }); moveNext(tokenizer); - while (tokenizer.currentTokenType !== CifTokenType.End) { - let token = tokenizer.currentTokenType; + while (tokenizer.tokenType !== CifTokenType.End) { + let token = tokenizer.tokenType; // Data block if (token === CifTokenType.Data) { @@ -569,7 +569,7 @@ async function parseInternal(data: string, ctx: Computation.Context) { if (Object.keys(blockCategories).length > 0) { dataBlocks.push(Data.Block(blockCategories, blockHeader)); } - blockHeader = data.substring(tokenizer.currentTokenStart + 5, tokenizer.currentTokenEnd); + blockHeader = data.substring(tokenizer.tokenStart + 5, tokenizer.tokenEnd); blockCategories = Object.create(null); moveNext(tokenizer); } @@ -609,7 +609,7 @@ async function parseInternal(data: string, ctx: Computation.Context) { } // Out of options } else { - return error(tokenizer.currentLineNumber, 'Unexpected token. Expected data_, loop_, or data name.'); + return error(tokenizer.lineNumber, 'Unexpected token. Expected data_, loop_, or data name.'); } } diff --git a/src/reader/common/column.ts b/src/reader/common/column.ts index 5f9fb03cd1cd8fa4fe1c24d8a6f488d2c5102354..209d47961bea83d612566d7f001a8356d5c18ff3 100644 --- a/src/reader/common/column.ts +++ b/src/reader/common/column.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> diff --git a/src/reader/common/text/column/fixed.ts b/src/reader/common/text/column/fixed.ts index 84a0f561ca37b0a0545b1da5a10c2f3c2b2b4d2c..ac411242ab8ebde05d71a72e81d8c5e4586a0844 100644 --- a/src/reader/common/text/column/fixed.ts +++ b/src/reader/common/text/column/fixed.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> diff --git a/src/reader/common/text/column/token.ts b/src/reader/common/text/column/token.ts index 0c5bb682f0e00a8fa402d945eba8dc3b575f852e..4d30f821118b279df63b88f0fd005bd3d2221837 100644 --- a/src/reader/common/text/column/token.ts +++ b/src/reader/common/text/column/token.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> diff --git a/src/reader/common/text/number-parser.ts b/src/reader/common/text/number-parser.ts index 2f5a8a80b17ae802a409f52e3351f1568b89299f..f7b097f8241b7b70cb98f8eec9d05484626b18bd 100644 --- a/src/reader/common/text/number-parser.ts +++ b/src/reader/common/text/number-parser.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * from https://github.com/dsehnal/CIFTools.js diff --git a/src/reader/common/text/tokenizer.ts b/src/reader/common/text/tokenizer.ts index d84705a43db0b67f159f15c158d2edc842b7c69e..a21f90c21a1f524c5624baaad2d2bf8def8d3854 100644 --- a/src/reader/common/text/tokenizer.ts +++ b/src/reader/common/text/tokenizer.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * mostly from https://github.com/dsehnal/CIFTools.js @@ -9,14 +9,14 @@ import Computation from '../../../utils/computation' export interface Tokenizer { - data: string + data: string, - position: number - length: number + position: number, + length: number, - currentLineNumber: number - currentTokenStart: number - currentTokenEnd: number + lineNumber: number, + tokenStart: number, + tokenEnd: number } export interface Tokens { @@ -30,16 +30,16 @@ export function Tokenizer(data: string): Tokenizer { data, position: 0, length: data.length, - currentLineNumber: 1, - currentTokenStart: 0, - currentTokenEnd: 0 + lineNumber: 1, + tokenStart: 0, + tokenEnd: 0 }; } export namespace Tokenizer { export function getTokenString(state: Tokenizer) { - return state.data.substring(state.currentTokenStart, state.currentTokenEnd); + return state.data.substring(state.tokenStart, state.tokenEnd); } /** @@ -50,14 +50,14 @@ export namespace Tokenizer { while (state.position < state.length) { switch (data.charCodeAt(state.position)) { case 10: // \n - state.currentTokenEnd = state.position; + state.tokenEnd = state.position; ++state.position; - ++state.currentLineNumber; + ++state.lineNumber; return; case 13: // \r - state.currentTokenEnd = state.position; + state.tokenEnd = state.position; ++state.position; - ++state.currentLineNumber; + ++state.lineNumber; if (data.charCodeAt(state.position) === 10) { ++state.position; } @@ -67,17 +67,17 @@ export namespace Tokenizer { break; } } - state.currentTokenEnd = state.position; + state.tokenEnd = state.position; } /** Sets the current token start to the current position */ export function markStart(state: Tokenizer) { - state.currentTokenStart = state.position; + state.tokenStart = state.position; } /** Sets the current token start to current position and moves to the next line. */ export function markLine(state: Tokenizer) { - state.currentTokenStart = state.position; + state.tokenStart = state.position; eatLine(state); } @@ -90,7 +90,7 @@ export namespace Tokenizer { function readLinesChunk(state: Tokenizer, count: number, tokens: Tokens) { for (let i = 0; i < count; i++) { markLine(state); - TokenBuilder.addUnchecked(tokens, state.currentTokenStart, state.currentTokenEnd); + TokenBuilder.addUnchecked(tokens, state.tokenStart, state.tokenEnd); } } @@ -127,14 +127,14 @@ export namespace Tokenizer { case 10: // \n case 13: // \r case 32: // ' ' - state.currentTokenEnd = state.position; + state.tokenEnd = state.position; return; default: ++state.position; break; } } - state.currentTokenEnd = state.position; + state.tokenEnd = state.position; } /** @@ -154,7 +154,7 @@ export namespace Tokenizer { case 10: // \n // handle \r\n if (prev !== 13) { - ++state.currentLineNumber; + ++state.lineNumber; } prev = c; ++state.position; @@ -162,7 +162,7 @@ export namespace Tokenizer { case 13: // \r prev = c; ++state.position; - ++state.currentLineNumber; + ++state.lineNumber; break; default: return prev; @@ -181,8 +181,8 @@ export namespace Tokenizer { c = data.charCodeAt(e); while ((c === 9 || c === 32) && e >= s) c = data.charCodeAt(--e); - state.currentTokenStart = s; - state.currentTokenEnd = e + 1; + state.tokenStart = s; + state.tokenEnd = e + 1; state.position = end; } } diff --git a/src/reader/gro/parser.ts b/src/reader/gro/parser.ts index 55db97ccbe11e76eb8011d508aa487c4b118277f..60d3dcddbb6df00ed137aa2c019fbb2acdc3dd8c 100644 --- a/src/reader/gro/parser.ts +++ b/src/reader/gro/parser.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> diff --git a/src/reader/gro/schema.d.ts b/src/reader/gro/schema.d.ts index 1d49d9641970598475fe2efcee25c231fca973c4..2ee9bc0edf12b9cddb0c883c53d15e4046a2d546 100644 --- a/src/reader/gro/schema.d.ts +++ b/src/reader/gro/schema.d.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> diff --git a/src/reader/spec/cif.spec.ts b/src/reader/spec/cif.spec.ts index 6e3824bd8e4d4857168565322da023d31e97c65e..c13ab97885321f534e833b8d9e364ef8bf958a59 100644 --- a/src/reader/spec/cif.spec.ts +++ b/src/reader/spec/cif.spec.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> diff --git a/src/reader/spec/gro.spec.ts b/src/reader/spec/gro.spec.ts index 157688fa4b53f38d5035c248d88dda32d6248dbd..ba2e48aef92cd266fb89649e0127cbae0baaad58 100644 --- a/src/reader/spec/gro.spec.ts +++ b/src/reader/spec/gro.spec.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> diff --git a/src/reader/spec/text-column.spec.ts b/src/reader/spec/text-column.spec.ts index e37d18d6a75f2c098d90cd7c4e387291d40cc707..3d3f15edb39f30b188ad3fa27f2093a734993afd 100644 --- a/src/reader/spec/text-column.spec.ts +++ b/src/reader/spec/text-column.spec.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> diff --git a/src/script.ts b/src/script.ts index 8612e3bc5d60cb213fb8adfa6a4845e5e4c16c80..b6df6755472ec3ffccd803b57fd6f51f0f7f7d53 100644 --- a/src/script.ts +++ b/src/script.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author Alexander Rose <alexander.rose@weirdbyte.de> diff --git a/src/utils/chunked-array.ts b/src/utils/chunked-array.ts index 54391c303e4d1094a1673adba472d9679a8c7218..fa1459e6a22fe29f31326291815882ec2c753300 100644 --- a/src/utils/chunked-array.ts +++ b/src/utils/chunked-array.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * from https://github.com/dsehnal/CIFTools.js diff --git a/src/utils/computation.ts b/src/utils/computation.ts index 565752b13940ae9477c5c01695c0b0581a775e8e..fa91d83f751d1a187e087dc2b08a6967b4747322 100644 --- a/src/utils/computation.ts +++ b/src/utils/computation.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * Adapted from https://github.com/dsehnal/LiteMol @@ -13,7 +13,7 @@ interface Computation<A> { } namespace Computation { - export let PRINT_CONSOLE_ERROR = false; + export let PRINT_ERRORS_TO_CONSOLE = false; export function create<A>(computation: (ctx: Context) => Promise<A>) { return new ComputationImpl(computation); @@ -61,7 +61,7 @@ namespace Computation { export type ProgressObserver = (progress: Readonly<Progress>) => void; export interface Running<A> { - subscribe(onProgress: ProgressObserver): void; + subscribe(onProgress: ProgressObserver): void, result: Promise<A> } @@ -101,8 +101,8 @@ namespace Computation { process(nextChunk: (chunkSize: number) => number, update: (updater: Context['updateProgress']) => void, nextChunkSize?: number): Promise<void> } - export function chunker(ctx: Context, defaultChunkSize: number): Chunker { - return new ChunkedImpl(ctx, defaultChunkSize); + export function chunker(ctx: Context, nextChunkSize: number): Chunker { + return new ChunkerImpl(ctx, nextChunkSize); } } @@ -125,7 +125,7 @@ class ComputationImpl<A> implements Computation<A> { const result = await this.computation(context); resolve(result); } catch (e) { - if (Computation.PRINT_CONSOLE_ERROR) console.error(e); + if (Computation.PRINT_ERRORS_TO_CONSOLE) console.error(e); reject(e); } finally { if (context.finished) context.finished(); @@ -227,15 +227,14 @@ class ObservableContext implements Computation.Context { } } - -class ChunkedImpl implements Computation.Chunker { +class ChunkerImpl implements Computation.Chunker { private processedSinceUpdate = 0; private updater: Computation.Context['updateProgress']; private computeChunkSize() { const lastDelta = (this.context as ObservableContext).lastDelta || 0; if (!lastDelta) return this.nextChunkSize; - const rate = (this.context as ObservableContext).updateRate || 0; + const rate = (this.context as ObservableContext).updateRate || DefaulUpdateRateMs; const ret = Math.round(this.processedSinceUpdate * rate / lastDelta + 1); this.processedSinceUpdate = 0; return ret; @@ -254,10 +253,10 @@ class ChunkedImpl implements Computation.Chunker { async process(nextChunk: (size: number) => number, update: (updater: Computation.Context['updateProgress']) => Promise<void> | void, nextChunkSize?: number) { if (typeof nextChunkSize !== 'undefined') this.setNextChunkSize(nextChunkSize); - let lastChunk: number; - while (( lastChunk = nextChunk(this.getNextChunkSize())) > 0) { - this.processedSinceUpdate += lastChunk; + let lastChunkSize: number; + while ((lastChunkSize = nextChunk(this.getNextChunkSize())) > 0) { + this.processedSinceUpdate += lastChunkSize; if (this.context.requiresUpdate) { await update(this.updater); this.nextChunkSize = this.computeChunkSize(); diff --git a/src/utils/scheduler.ts b/src/utils/scheduler.ts index 5717fb834e700b9fb5b409e2faf99c6f46ff02e2..d061959047740ce72126413192885c5546153f9a 100644 --- a/src/utils/scheduler.ts +++ b/src/utils/scheduler.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * @author David Sehnal <david.sehnal@gmail.com> @@ -10,7 +10,7 @@ * MIT license. */ -function createActions() { +function createImmediateActions() { type Callback = (...args: any[]) => void; type Task = { callback: Callback, args: any[] } @@ -161,10 +161,6 @@ function createActions() { }; } - // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live. - //const attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global); - //attachTo = attachTo && attachTo.setTimeout ? attachTo : global; - // Don't get fooled by e.g. browserify environments. if (typeof process !== 'undefined' && {}.toString.call(process) === '[object process]') { // For Node.js before 0.9 @@ -189,20 +185,20 @@ function createActions() { }; } -const actions = (function () { +const immediateActions = (function () { if (typeof setImmediate !== 'undefined') { return { setImmediate, clearImmediate }; } - return createActions(); + return createImmediateActions(); }()); function resolveImmediate(res: () => void) { - actions.setImmediate(res); + immediateActions.setImmediate(res); } export default { - immediate: actions.setImmediate, - clearImmediate: actions.clearImmediate, + immediate: immediateActions.setImmediate, + clearImmediate: immediateActions.clearImmediate, immediatePromise() { return new Promise<void>(resolveImmediate); } }; diff --git a/src/utils/short-string-pool.ts b/src/utils/short-string-pool.ts index 54d673b7701b043829f541355e2d104322d3a535..870284bcca01277b4620dc6ce72aa0ae18fc013a 100644 --- a/src/utils/short-string-pool.ts +++ b/src/utils/short-string-pool.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * from https://github.com/dsehnal/CIFTools.js diff --git a/src/utils/utf8.ts b/src/utils/utf8.ts index aba675bbdea2f27a3ce6974e086cc43f48804917..ff7c8a6fb7ef0d374e99b160f969b3a70d260f5e 100644 --- a/src/utils/utf8.ts +++ b/src/utils/utf8.ts @@ -1,4 +1,4 @@ -/* +/** * Copyright (c) 2017 molio contributors, licensed under MIT, See LICENSE file for more info. * * Adapted from https://github.com/rcsb/mmtf-javascript