diff --git a/src/reader/common/text/data.ts b/src/reader/common/text/token-field.ts similarity index 96% rename from src/reader/common/text/data.ts rename to src/reader/common/text/token-field.ts index 595496de3da3bcb5fb318f4a2aa095d2c5413f94..849d7cb843651dd9065892a6c165983a5b0d9d05 100644 --- a/src/reader/common/text/data.ts +++ b/src/reader/common/text/token-field.ts @@ -9,14 +9,13 @@ import { parseInt as fastParseInt, parseFloat as fastParseFloat } from './number import { Tokens } from './tokenizer' import ShortStringPool from '../../../utils/short-string-pool' -export function createCategory(data: string, fields: string[], tokens: Tokens, rowCount: number) { +export function createTokenFields(data: string, fields: string[], tokens: Tokens): { [name: string]: Data.Field } { const fi: TokenFieldInfo = { data, fieldCount: fields.length, tokens: tokens.indices }; - const categoryFields = Object.create(null); for (let i = 0; i < fi.fieldCount; ++i) { categoryFields[fields[i]] = TokenField(fi, i); } - return Data.Category(rowCount, categoryFields); + return categoryFields; } export interface TokenFieldInfo { diff --git a/src/reader/gro/index.ts b/src/reader/gro/format.ts similarity index 100% rename from src/reader/gro/index.ts rename to src/reader/gro/format.ts diff --git a/src/reader/gro/parser.ts b/src/reader/gro/parser.ts index 1e56166e8658cfdbd86d07cfa3b70ea902f6f563..7c41e81bbb49d50ea5e5a2bc82bd94815eba9d9c 100644 --- a/src/reader/gro/parser.ts +++ b/src/reader/gro/parser.ts @@ -7,7 +7,7 @@ import { State as TokenizerState, Tokens, eatLine, skipWhitespace, eatValue, trim } from '../common/text/tokenizer' import { parseInt } from '../common/text/number-parser' -import { createCategory } from '../common/text/data' +import { createTokenFields } from '../common/text/token-field' import * as Data from '../../data/data' import Result from '../result' @@ -120,7 +120,7 @@ function handleAtoms(state: State) { eatLine(state) } - return createCategory(state.data, fields, tokens, state.info.numberOfAtoms); + return Data.Category(state.info.numberOfAtoms, createTokenFields(state.data, fields, tokens)); } /** @@ -151,7 +151,7 @@ function parseInternal(data: string): Result<Data.File> { handleBoxVectors(state, headerTokens); const block = Data.Block({ - header: createCategory(data, headerFields, headerTokens, 1), + header: Data.Category(1, createTokenFields(data, headerFields, headerTokens)), atoms }); diff --git a/src/reader/spec/gro.spec.ts b/src/reader/spec/gro.spec.ts index f140b1a4f9c78e208cdcd49cc84188d3c57367cf..dc2423731f95954408cc14b33f33f41fe2e01b0e 100644 --- a/src/reader/spec/gro.spec.ts +++ b/src/reader/spec/gro.spec.ts @@ -5,7 +5,7 @@ * @author David Sehnal <david.sehnal@gmail.com> */ -import Gro from '../gro/index' +import Gro from '../gro/format' const groString = `MD of 2 waters, t= 4.2 6 diff --git a/src/script.ts b/src/script.ts index d62c6f66f7758ddf08fb548833ee1069b1eab8a7..2febe153c9bc24ab424e5e8dd99aa0371b52febc 100644 --- a/src/script.ts +++ b/src/script.ts @@ -7,7 +7,7 @@ // import * as util from 'util' import * as fs from 'fs' -import Gro from './reader/gro/index' +import Gro from './reader/gro/format' //const file = '1crn.gro' // const file = 'water.gro'