// Path: src/LoggerLib/Logger.java
// public class Logger {
// 	static int counter=0;
// 	public static void increase(int i)
// 	{
// 		counter+=i;
// 	}
// 	public static void report()
// 	{
// 		System.out.println(counter);
// 	}
// 	public static void reportString(String v, String log){
// 		System.out.println(log+"*"+v);
// 
// 		
// 	}
// }
// 
// Path: src/usc/sql/ir/Init.java
// public class Init extends Variable{
// 	String name;
// 	String line;
// 
// 	List<Variable> initVar = new ArrayList<>();
// 	
// 	public Init(String name,String line)
// 	{
// 		this.name = name;
// 		this.line = line;
// 		
// 	}
// 	
// 	public Init(String name,String line,List<Variable> initVar)
// 	{
// 		this.name = name;
// 		this.line = line;
// 		this.initVar = initVar;
// 		//initVar.addAll(initVar);
// 	}
// 	
// 	public void setName(String name)
// 	{
// 		this.name = name;
// 	}
// 	
// 	public String getName()
// 	{
// 		return name;
// 	}
// 	public String getLine()
// 	{
// 		return line;
// 	}
// 	public List<Variable> getInitVar()
// 	{
// 		return initVar;
// 	}
// 	public void setInitVar(List<Variable> initVar)
// 	{
// 		this.initVar = initVar;
// 		
// 	}
// 	@Override
// 	public String getValue() {
// 		return "@"+name;
// 	}
// 	
// 
// 	@Override
// 	public String toString()
// 	{
// 		
// 		if(initVar.isEmpty())
// 			return "\""+name+"\""+" "+line;
// 		else
// 		{
// 			
// 		
// 			//return "\""+name+"\"";
// 			return initVar.toString();
// 		}
// 			
// 	}
// }


import LoggerLib.Logger;
import usc.sql.ir.Init;
package usc.sql.string.testcase;


class A
{
	String a;
	public void setA(String a)
	{
		this.a = a;
	}
}
public class SimpleTest {
	
	static String aa = "A";

	
    public static String addA(String v)
	{
		return v+"A";
	}

	public static String tmp(String a)
	{
		for(int i=0;i<3;i++)
			a = a + "a";
		a = addA(a);
		return a; //t(sigma_r0|ext_a+"a")|| ext_a
	}
	public static void main(String[] args)
	{		
	
		/*
		String a="a";
		String b="b";
		for(int i=0;i<2;i++)
		{
			a=a+b+"a";
			Logger.reportString(a,"Concat.NestedLoop_Branch");

			for(int j=0;j<2;j++)
	                {
				long time=(int)(Math.random()*100); 
				if(time % 2 ==0)
				{
					b=b+"b";
				}
				else{
			   		b=b+"t";
				}
			}
		}
		*/

		/*
		String a="a";
		String b="b";
		String c="c";
		String e="l";
		for(int i=0;i<3;i++)
		{
			a=a+b;
			b=b+c;
			long time=(int)(Math.random()*100);
			if(time % 2 ==0)
			{
				c=c+a+"c";
			}
			else{
			   	c=c+a+"d";
			}
			Logger.reportString(c,"Concat.CircleLoop_Branch");
		}
		*/
		
		
		String a="a";
		String b="b";
		StringBuilder c = new StringBuilder();
		c.append("ccc");

		b = b + c;
// Path: src/LoggerLib/Logger.java
// public class Logger {
// 	static int counter=0;
// 	public static void increase(int i)
// 	{
// 		counter+=i;
// 	}
// 	public static void report()
// 	{
// 		System.out.println(counter);
// 	}
// 	public static void reportString(String v, String log){
// 		System.out.println(log+"*"+v);
// 
// 		
// 	}
// }
// 
// Path: src/usc/sql/ir/Init.java
// public class Init extends Variable{
// 	String name;
// 	String line;
// 
// 	List<Variable> initVar = new ArrayList<>();
// 	
// 	public Init(String name,String line)
// 	{
// 		this.name = name;
// 		this.line = line;
// 		
// 	}
// 	
// 	public Init(String name,String line,List<Variable> initVar)
// 	{
// 		this.name = name;
// 		this.line = line;
// 		this.initVar = initVar;
// 		//initVar.addAll(initVar);
// 	}
// 	
// 	public void setName(String name)
// 	{
// 		this.name = name;
// 	}
// 	
// 	public String getName()
// 	{
// 		return name;
// 	}
// 	public String getLine()
// 	{
// 		return line;
// 	}
// 	public List<Variable> getInitVar()
// 	{
// 		return initVar;
// 	}
// 	public void setInitVar(List<Variable> initVar)
// 	{
// 		this.initVar = initVar;
// 		
// 	}
// 	@Override
// 	public String getValue() {
// 		return "@"+name;
// 	}
// 	
// 
// 	@Override
// 	public String toString()
// 	{
// 		
// 		if(initVar.isEmpty())
// 			return "\""+name+"\""+" "+line;
// 		else
// 		{
// 			
// 		
// 			//return "\""+name+"\"";
// 			return initVar.toString();
// 		}
// 			
// 	}
// }


// Path: test/usc/sql/string/testcase/SimpleTest.java
import LoggerLib.Logger;
import usc.sql.ir.Init;

package usc.sql.string.testcase;


class A
{
	String a;
	public void setA(String a)
	{
		this.a = a;
	}
}
public class SimpleTest {
	
	static String aa = "A";

	
    public static String addA(String v)
	{
		return v+"A";
	}

	public static String tmp(String a)
	{
		for(int i=0;i<3;i++)
			a = a + "a";
		a = addA(a);
		return a; //t(sigma_r0|ext_a+"a")|| ext_a
	}
	public static void main(String[] args)
	{		
	
		/*
		String a="a";
		String b="b";
		for(int i=0;i<2;i++)
		{
			a=a+b+"a";
			Logger.reportString(a,"Concat.NestedLoop_Branch");

			for(int j=0;j<2;j++)
	                {
				long time=(int)(Math.random()*100); 
				if(time % 2 ==0)
				{
					b=b+"b";
				}
				else{
			   		b=b+"t";
				}
			}
		}
		*/

		/*
		String a="a";
		String b="b";
		String c="c";
		String e="l";
		for(int i=0;i<3;i++)
		{
			a=a+b;
			b=b+c;
			long time=(int)(Math.random()*100);
			if(time % 2 ==0)
			{
				c=c+a+"c";
			}
			else{
			   	c=c+a+"d";
			}
			Logger.reportString(c,"Concat.CircleLoop_Branch");
		}
		*/
		
		
		String a="a";
		String b="b";
		StringBuilder c = new StringBuilder();
		c.append("ccc");

		b = b + c;
			Logger.reportString(b,"Concat.NestedLoop");