package us.softoption.infrastructure;

public class Symbols {
	
	
	public static final char chSmallLeftBracket = '(';
	public static final String strSmallLeftBracket = "(";
	public static final char chSmallRightBracket = ')';
	public static final String strSmallRightBracket = ")";
	
	public static final char chNBSpace = '\u00A0';  // non breaking space &nbsp;
	
	public static final char chTherefore='\u2234';

	public static final char chLSqBracket = '[';
	public static final String strLSqBracket = "[";
	public static final char chRSqBracket = ']';
	public static final String strRSqBracket = "]";
	
	public static final char chLeftCurlyBracket = '{';
	public static final String strLeftCurlyBracket = "{";
	public static final char chRightCurlyBracket = '}';
	public static final String strRightCurlyBracket = "}";

	public static final char chMult = '.';
	public static final String strMult = ".";
	public static final char chXProd = '\u00D7';
	public static final String strXProd = "\u00D7";

	public static final char chAdd = '+';
	public static final String strAdd = "+";
	
	public static final char chMinus = '-';
	public static final String strMinus = "-";
	
	public static final char chAt = '@';
	public static final String strAt = "@";

	public static final char chSucc = '\'';
	public static final String strSucc = "\'";


	public static final char chAnd = '\u2227';     //&and;  &#8743  upside down vee
	public static final char chAnd2 = '&';     //&and;  &#8743  BergmannAnd
	public static final char chAnd3 = '.';     //&and;  &#8743

	public static final String strAnd = "\u2227";     //&and;  &#8743  upside down vee internal form

	public static final char chNeg= '\u223C';      // Tilde operator       &#8764;
	public static final char chNotSign= '\u00AC';     //&not;   NNED TO CORRECT THIS
	public static final char chNeg3= '\u007E';     //tilde
	public static final char chNeg4= '\u02DC';     //small tilde
	
	public static final String strNeg = "\u223C";     //internal form

	public static final char chUniquant='\u2200';  //&forall; &#8704;
	public static final String strUniquant = "\u2200";
	public static final char chOr = '\u2228';      //&or; &#8744;
	public static final String strOr = "\u2228";      //&or; &#8744;
	public static final char chExiquant='\u2203';  //&exist; &#8707;
	public static final String strExiquant = "\u2203";


	public static final char chImplic = '\u2283';  //&sup; &#8835;
	public static final char chArrow = '\u2192';  //&rarr; &#8594  ;

	public static final char chEquiv = '\u2261';   //&equiv; &#8801;
	public static final char chHArr = '\u2194';   //&harr; &#8596;

	
	public static final char chSuperscript1 = '\u00B9';
	public static final char chSuperscript1Alt = '\u00B9';
	public static final char chSuperscript2 = '\u00B2';
	public static final char chSuperscript3 = '\u00B3';
	public static final char chSuperscript4 = '\u2074';
	public static final char chSuperscript5 = '\u2075';
	public static final char chSuperscript6 = '\u2076';
	public static final char chSuperscript7 = '\u2077';
	public static final char chSuperscript8 = '\u2078';
	public static final char chSuperscript9 = '\u2079';
	public static final char chSuperscript0 = '\u2070';
	
	public static final char chSubscript1 = '\u2081';
	public static final char chSubscript2 = '\u2082';
	public static final char chSubscript3 = '\u2083';
	public static final char chSubscript4 = '\u2084';
	public static final char chSubscript5 = '\u2085';
	public static final char chSubscript6 = '\u2086';
	public static final char chSubscript7 = '\u2087';
	public static final char chSubscript8 = '\u2088';
	public static final char chSubscript9 = '\u2089';
	public static final char chSubscript0 = '\u2080';
	
	public static final int intSubscript1 = 1;
	public static final int intSubscript2 = 2;
	public static final int intSubscript3 = 3;
	public static final int intSubscript4 = 4;
	public static final int intSubscript5 = 5;
	public static final int intSubscript6 = 6;
	public static final int intSubscript7 = 7;
	public static final int intSubscript8 = 8;
	public static final int intSubscript9 = 9;
	public static final int intSubscript0 = 0;


	public static final char chModalNecessary= '\u25A1';  //geometrical shape, white square
	public static final char chModalNecessary2= '\u2394';  //geometrical shape, white square

	public static final char chModalPossible= '\u25CA';   //geometrical shape, lozenge, white diamond
	public static final char chModalPossible2= '\u25C7';   //geometrical shape, white diamond
	public static final char chModalPossible3= '\u20DF';   //geometrical shape, solidus, white diamond
	public static final char chModalPossible4= '\u25C8';   //geometrical shape, solidus, white diamond


	public static final char chLambda= '\u03BB';   //greek small letter lambda
	public static final char chBeta= '\u03B2';   //greek small letter beta
	public static final char chAlpha= '\u03B1';   //greek small letter beta
	public static final char chKappa= '\u039A';   //greek upper letter kappa
	public static final char chSmallKappa= '\u03BA';   //greek lower letter kappa
	public static final char chRho= '\u03A1';   //greek upper letter rho
	public static final char chLowerRho= '\u03C1';   //greek lower letter rho
	
	
	public static final char chDoubleArrow= '\u21D2';   //rightward double arrow (for rewrites)

	public static final char chUnique = '!';


	public static final char chBlank = ' ';
	public static final String strNull = "";
	public static final String strCR = "\n";  // need to change this for cross platform

	public static final char chComma = ',';
	public static final char chQuestionMark = '?';
	public static final char chSlash = '/';
	public static final char chColon = ':';
	public static final char chVertLine = '|';
	public static final char chInsertMarker = '>';
	public static final char chBoxVertLine = '\u2503';
	public static final char chHeavyDownLine = '\u257B';
	
	public static final char chEmptySet = '\u2205';
	public static final String strEmptySet ="\u2205";
	public static final char chUniverseSet = 'Ü'; //'U'; German U-umlaut symbol and it is typed by following option-u with uppercase-U
	public static final String strUniverseSet = "Ü"; //="U";
	
	public static final char chDownTack = '\u22A4';   //the single letter symbol for true
	public static final String strDownTack = chDownTack+"";   //the single letter symbol for true
	public static final char chUpTack = '\u22A5';     //the single letter symbol for false
	public static final String strUpTack = chUpTack+"";     //the single letter symbol for false

	/******** infix predicates **************/

	public static final char chLessThan = '<';
	public static final String strLessThan = "<";
	public static final char chGreaterThan = '>';
	public static final String strGreaterThan = ">";

	public static final char chEquals = '=';
	public static final String strEquals = "=";

	public static final char chMemberOf = '\u2208';
	public static final String strMemberOf = "\u2208";
	public static final char chNotMemberOf = '\u2209';
	public static final String strNotMemberOf = "\u2209";
	public static final char chEpsilon = '\u03B5';
	public static final String chEpsilonLarge = "\u0395";

	public static final char chUnion = '\u222A';
	public static final String strUnion = "\u222A";
	
	public static final char chIntersection = '\u2229';
	public static final String strIntersection = "\u2229";
	
	//public static final char chCartesianProduct = '\u00D7';   us chXProd
	//public static final String strCartesianProduct = "\u00D7";
	
	public static final char chSubset = '\u2282';
	public static final String strSubsetOf = "\u2282";
	
	public static final char chPowerSet = '\u2118';    // &#8472; or &weierp;
	public static final String strPowerSet = "\u2118"; // standard unary functor
	
	public static final String setTheorySymbols = strMemberOf + chBlank+
												  strNotMemberOf + chBlank+
	                                              strUnion + chBlank+
	                                              strIntersection+ chBlank+
	                                              strPowerSet+ chBlank+
	                                            //  strCartesianProduct+ chBlank+
	                                              strSubsetOf+ chBlank+
	                                              strEmptySet+ chBlank+
	                                              strUniverseSet;
	
	

	public static final String strInfixPreds = strLessThan+strEquals+strMemberOf+strSubsetOf;

	/******** end of  infix predicates **************/

	public static final String defaultFilter="[" + chBlank+"]"; // this is a regular expression for use in filtering input with replaceAll


	public static final String lispFilterOut="[" + strCR+"]";   // changes a return to a blank which is a separator
	public static final String lispFilterIn="[" + chBlank+"]";



	public static String negationChs = "~"+chNeg+chNotSign+chNeg3+chNeg4;
	
	


	public static String implicChs = String.valueOf(chImplic) + chArrow;

	public static String andChs = String.valueOf(chAnd) + chAnd2 +chAnd3;

	public static String orChs = String.valueOf(chOr);

	public static String equivChs = String.valueOf(chEquiv) + chHArr;

	public static String modalPossibleChs = ""+chModalPossible+chModalPossible2+chModalPossible3+chModalPossible3;

	public static String modalNecessaryChs = ""+chModalNecessary+chModalNecessary2;
	
	public static String memberOfChs = ""+chMemberOf+chEpsilon + chEpsilonLarge;
	
	public static String superScripts = ""+chSuperscript1+ chSuperscript1Alt+ chSuperscript2+ chSuperscript3+ chSuperscript4
										+ chSuperscript5+ chSuperscript6+ chSuperscript7+ chSuperscript8+ chSuperscript9+ chSuperscript0;
	
	/****************************************************/
	
	

}
