import java.util.*;
import Jakarta.util.FixDosOutputStream;
import java.io.*;
public abstract class AstList {
public int getFirstLineNum() {
AstNode l;
// Step 1: return if the list is empty
if ( arg[0] == null )
return -1;
// Step 2: traverse the list
for ( l = arg[0]; l != null; l = l.right ) {
if ( l.arg[0] == null )
continue;
int result = l.arg[0].getFirstLineNum();
if ( result != -1 )
return result;
}
return -1;
}
public int getLastLineNum() {
AstNode l;
// Step 1: return if the list is empty
if ( last == null )
return -1;
// Step 2: traverse the list backwards
for ( l = last; l != null; l = l.left ) {
if ( l.arg[0] == null )
continue;
int result = l.arg[0].getLastLineNum();
if ( result != -1 )
return result;
}
return -1;
}
}