Erro arraylist

Alguem poderia me explicar por que, e me dar a solução, de que nas ArrayLists abaixo, retorna o erro identifier expected?

import java.util.Scanner;
import java.util.Date;
import java.text.DateFormat;
import java.lang.String.*;
import java.util.ArrayList;
import java.util.List;

public class Main extends Things
{

ArrayList <String> commands = new ArrayList <String>();
commands.add("Sayser Hello");
commands.add("Sayser My Name");

static boolean flag = true;

public static boolean isFlag()
{
return flag;
}

public static void main(String[] args)
{

Scanner entry = new Scanner(System.in);

System.out.println("Hello, my name is Sayser,and I will be your servant");

System.out.println("First, what's your name? :");
System.out.print("...My name is : ");
String name = entry.nextLine();

System.out.println("");

System.out.println("Okay, my lord " + name +", in what way do you want me to call you?(Sir, mrs, ms or master)");
System.out.print("...");
String namemode = entry.nextLine();

System.out.println("");

System.out.println("Right");

System.out.println("");

System.out.println("First instruction: When you want to give me a command, just write Sayser ,and the command.      To get out, write Sayser out");

System.out.println("");

System.out.println("Ok, let's begin to work; I'm waiting for your orders");

System.out.println("");

while (isFlag())
{

		System.out.print("...");
  String order = entry.nextLine();

		String cutedPhrase = ""; 

		cutedPhrase = order.substring(0, 6);

		System.out.println("");

		if(!"Sayser".equals(cutedPhrase))
		{
			System.out.println(">>> Please, write Sayser before the command");
		}

		//Date
		Date d = new Date();
		String dStr = java.text.DateFormat.getDateInstance(DateFormat.MEDIUM).format(d);
		//Date

		if("Sayser time".equals(order) || "Sayser Date".equals(order) || "Sayser Time".equals(order) || "Sayser date".equals(order))
		{

			System.out.println(">>> "+ d);

			System.out.println("");

		}
		else if("Sayser out".equals(order) || "Sayser Out".equals(order))
		{
			flag = false;
		}
		else if(commands.contains(order))
		{
			System.out.println(">>> Hi, my "+ namemode+" " + name);

			System.out.println("");
		}

}

System.out.println(">>> So, if you want, good bye (:(");

}

}

Seu ArrayList não é static e você está tentando acessá-lo através de um método estático (main).

É que você está tentando escrever um fluxo de código no corpo da classe e isso não pode.

ArrayList <String> commands = new ArrayList <String>();
commands.add("Sayser Hello");   // essa linha não pode ser chamada aqui
commands.add("Sayser My Name"); // essa linha também não

Se você quer adicionar elementos à essa lista, você deve deve fazer isso dentro de um método, dentro de um construtor ou dentro de um bloco de inicialização;

valeu