@@ -32,7 +32,7 @@ export function readFile(file: File) {
3232 } ) ;
3333}
3434
35- export function parse ( file : string | string [ ] , type ?: Extension ) {
35+ export function parse ( file : string | string [ ] , type ?: Extension , parseLinks = false ) {
3636 if ( typeof file === "string" ) {
3737 file = file . split ( "\n" ) ;
3838 }
@@ -51,9 +51,9 @@ export function parse(file: string | string[], type?: Extension) {
5151 }
5252 } else if ( ( type && type === "tree" ) || nodeHeader . includes ( "path" ) ) {
5353 if ( nodeHeader [ nodeHeader . length - 2 ] === "name" ) {
54- return parseTree ( file , nodeHeader ) ;
55- } else if ( nodeHeader [ nodeHeader . length - 2 ] === "state_id" ) {
56- return parseTree < TreeStateNode > ( file , nodeHeader ) ;
54+ return parseTree ( file , nodeHeader , parseLinks ) ;
55+ } else if ( nodeHeader [ nodeHeader . length - 2 ] === "state_id" || nodeHeader [ nodeHeader . length - 1 ] === "layer_id" ) {
56+ return parseTree < TreeStateNode > ( file , nodeHeader , parseLinks ) ;
5757 }
5858 }
5959
@@ -98,12 +98,14 @@ export function parseClu<NodeType extends CluNode>(
9898
9999 const header = parseHeader ( file ) ;
100100 if ( ! header ) {
101+ console . warn ( "No header" ) ;
101102 return null ;
102103 }
103104
104105 if ( ! nodeHeader ) {
105106 nodeHeader = parseNodeHeader ( file ) ?? [ ] ;
106107 if ( nodeHeader . length === 0 ) {
108+ console . warn ( "No node header" ) ;
107109 return null ;
108110 }
109111 }
@@ -164,12 +166,14 @@ export function parseTree<NodeType extends TreeNode>(
164166
165167 const header = parseHeader ( file ) ;
166168 if ( ! header ) {
169+ console . warn ( "No header" ) ;
167170 return null ;
168171 }
169172
170173 if ( ! nodeHeader ) {
171174 nodeHeader = parseNodeHeader ( file ) ?? [ ] ;
172175 if ( nodeHeader . length === 0 ) {
176+ console . warn ( "No node header" ) ;
173177 return null ;
174178 }
175179 }
@@ -210,6 +214,7 @@ export function parseTree<NodeType extends TreeNode>(
210214 node [ key ] = Number ( match [ j ] ) ;
211215 break ;
212216 default :
217+ console . warn ( `Unknown field ${ field } ` ) ;
213218 break ;
214219 }
215220 }
@@ -232,7 +237,7 @@ export function parseTree<NodeType extends TreeNode>(
232237
233238 for ( const [ _ , line ] of linkSection ( file , lineNo ) ) {
234239 if ( line . startsWith ( "*Links" ) ) {
235- const [ moduleId , ...rest ] = line . split ( " " ) ;
240+ const [ _ , moduleId , ...rest ] = line . split ( " " ) ;
236241
237242 const path = moduleId === "root" ? [ 0 ] : moduleId . split ( ":" ) . map ( Number ) ;
238243 const [ enterFlow , exitFlow , numEdges , numChildren ] = rest . map ( Number ) ;
@@ -299,7 +304,6 @@ function* linkSection(lines: string[], start: number = 0) {
299304 }
300305
301306 yield [ i , line ] as [ number , string ] ;
302- continue ;
303307 }
304308}
305309
@@ -422,7 +426,7 @@ export function parseHeader(file: string | string[]): Header | null {
422426 const bipartiteStartId = line . match ( / ^ # b i p a r t i t e s t a r t i d ( \d + ) / ) ?. [ 1 ] ;
423427 if ( bipartiteStartId ) {
424428 result . bipartiteStartId = Number ( bipartiteStartId ) ;
425- continue ;
429+ // continue;
426430 }
427431 }
428432
0 commit comments