import java.io.*;
import java.lang.*;

public class SourceCode {

	public SourceCode(String filename) {
		int i, index = 0;
		String s, SourceTmp[];
		boolean eof = false;
	
//		if(filename.indexOf(".asm") != -1) {		//	*.asm ?
		
			SourceTmp = new String[2048];		//!!!
			try {
				BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(filename)));
				while(!eof) {
					for(i = 0; i < 2048; i++){		// !!!!!!!!!!!!!!! need to get nbre of line
					s = in.readLine();
					SourceTmp[i] = s;
						if(s == null){
							eof = true;
							break;
						}
					Size++;
					}
				}
			}
			catch (IOException e) {};
			Source = new String[Size];
			for(i = 0; i < Size; i++){
				Source[i] = SourceTmp[i];
			}

//		}
/*		else 		//	it is a String
		{
		String source2 = filename;
		while(!eof){
			index = source2.indexOf('\n');	
			if((index == -1) || (source2 == null)) 
				eof = true;
			else {
				source2 = source2.substring(index + 1, source2.length());
				Size++;
			}
		}
		Size++;
		source2 = filename;
		Source = new String[Size];
		for(i = 0; i < Size-1; i++){
			Source[i] = source2.substring(0, source2.indexOf("\n"));
			source2 = source2.substring(source2.indexOf("\n") + 1, source2.length());	
		 }
		Source[Size-1] = source2;
		}
*/
	}


	public SourceCode(String[] source) {		//	it is a String[], pas test้ encore
		int i;
//		System.out.println(source[0]);
//		System.out.println(source[1]);
		Source = new String[source.length];
		for(i = 0; i < source.length; i++)
			Source[i] = source[i];

		Size = source.length;
//	System.out.println(Size);
	}



	public void Save(String filename) {		//	Save le contenu de Source[]
		int i = 0;
		try {
			BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(filename)));
			out.flush();

			for(i = 0; i < Size; i++) { 
				out.write(Source[i]);
				out.newLine();
			}
			out.close();
		}
		catch (IOException e) {
		System.out.println(e);
		}
	
	}




	public String[] Source() {
		return Source;
	}

	public String SourceString() {
		String r = "";
		int i;

		for(i = 0 ; i < Size ; i++)
			r += Source[i] + "\n";

		return r;
	}
	
	public static String[] StringArrayFromString(String s) {
		String r[];
		int nblines = 0, i = 0, j;

		while(i != -1) {
			nblines++;
			i = s.indexOf('\n', i + 1);
		}

		r = new String[nblines];

		for(i = 0 ; i < nblines ; i++) {
			j = s.indexOf('\n');
			if(j != -1) {
				r[i] = s.substring(0, j);
				s = s.substring(j + 1);
			}
			else
				r[i] = s;
		}

		return r;
	}

	protected String Source[];
	protected int Size;
}