package seedu.tache.logic.parser;

import java.util.regex.Pattern;

/**
 * Contains Command Line Interface (CLI) syntax definitions common to multiple commands
 */
public class CliSyntax {

    //@@author A0139925U
    /* Parameter delimiter definitions */
    public static final String DELIMITER_PARAMETER = new String(";");
    public static final String DELIMITER_INDEX = new String(",");
    public static final String DELIMITER_EDIT_PARAMETER = new String(" ");

    /* Natural Language Processing definitions */
    public static final String KEYWORD_EDIT_PARAMETER = " change ";
    public static final String KEYWORD_EDIT_PARAMETER_VALUE = " to ";
    public static final String KEYWORD_EDIT_MULTI_PARAMETER = " and ";
    public static final String KEYWORDS_EDIT_MULTI_PARAMETER = " and change ";

    /* Parameter names definitions */
    public static final String PARAMETER_NAME = "name";
    public static final String PARAMETER_NAME_2 = "n";
    public static final String PARAMETER_START_DATE = "start_date";
    public static final String PARAMETER_START_DATE_2 = "startdate";
    public static final String PARAMETER_START_DATE_3 = "sd";
    public static final String PARAMETER_END_DATE = "end_date";
    public static final String PARAMETER_END_DATE_2 = "enddate";
    public static final String PARAMETER_END_DATE_3 = "ed";
    public static final String PARAMETER_START_TIME = "start_time";
    public static final String PARAMETER_START_TIME_2 = "starttime";
    public static final String PARAMETER_START_TIME_3 = "st";
    public static final String PARAMETER_END_TIME = "end_time";
    public static final String PARAMETER_END_TIME_2 = "endtime";
    public static final String PARAMETER_END_TIME_3 = "et";
    public static final String PARAMETER_TAG = "tag";
    public static final String PARAMETER_TAG_2 = "t";

    /* List filter definitions */
    public static final String FILTER_COMPLETED = "completed";
    public static final String FILTER_UNCOMPLETED = "uncompleted";
    public static final String FILTER_ALL = "all";
    //@@author A0142255M
    public static final String FILTER_TIMED = "timed";
    public static final String FILTER_FLOATING = "floating";
    //@@author
    //@@author A0139961U
    public static final String FILTER_DUE_TODAY = "today";
    public static final String FILTER_DUE_THIS_WEEK = "this week";
    public static final String FILTER_OVERDUE = "overdue";
    //@@author

    /* Patterns definitions */
    public static final Pattern KEYWORDS_ARGS_FORMAT =
            Pattern.compile("(?<keywords>\\S+(?:\\s+\\S+)*)"); // one or more keywords separated by whitespace

}

@@ -861,32 +861,34 @@
 tic final String
+%5B%5D
  PARAMETER_NAME 
@@ -893,69 +893,21 @@
 E = 
+%7B
 %22name%22
-;%0A    public static final String PARAMETER_NAME_2 =
+,
  %22n%22
+%7D
 ;%0A  
@@ -926,32 +926,34 @@
 tic final String
+%5B%5D
  PARAMETER_START
@@ -956,24 +956,25 @@
 TART_DATE = 
+%7B
 %22start_date%22
@@ -977,139 +977,28 @@
 ate%22
-;%0A    public static final String PARAMETER_START_DATE_2 = %22startdate%22;%0A    public static final String PARAMETER_START_DATE_3 =
+, %22startdate%22,
  %22sd%22
+%7D
 ;%0A  
@@ -1017,32 +1017,34 @@
 tic final String
+%5B%5D
  PARAMETER_END_D
@@ -1045,24 +1045,25 @@
 _END_DATE = 
+%7B
 %22end_date%22;%0A
@@ -1064,133 +1064,26 @@
 ate%22
-;%0A    public static final String PARAMETER_END_DATE_2 = %22enddate%22;%0A    public static final String PARAMETER_END_DATE_3 =
+, %22enddate%22,
  %22ed%22
+%7D
 ;%0A  
@@ -1102,32 +1102,34 @@
 tic final String
+%5B%5D
  PARAMETER_START
@@ -1136,16 +1136,17 @@
 _TIME = 
+%7B
 %22start_t
@@ -1153,139 +1153,28 @@
 ime%22
-;%0A    public static final String PARAMETER_START_TIME_2 = %22starttime%22;%0A    public static final String PARAMETER_START_TIME_3 =
+, %22starttime%22,
  %22st%22
+%7D
 ;%0A  
@@ -1193,32 +1193,34 @@
 tic final String
+%5B%5D
  PARAMETER_END_T
@@ -1225,16 +1225,17 @@
 _TIME = 
+%7B
 %22end_tim
@@ -1240,133 +1240,26 @@
 ime%22
-;%0A    public static final String PARAMETER_END_TIME_2 = %22endtime%22;%0A    public static final String PARAMETER_END_TIME_3 =
+, %22endtime%22,
  %22et%22
+%7D
 ;%0A  
@@ -1278,32 +1278,34 @@
 tic final String
+%5B%5D
  PARAMETER_TAG =
@@ -1309,67 +1309,20 @@
 G = 
+%7B
 %22tag%22
-;%0A    public static final String PARAMETER_TAG_2 =
+,
  %22t%22
+%7D
 ;%0A%0A 

Refactor parameters in CliSyntax to arrays