private RegularExpresionNode Symbol() throws ParserException
    {
        if (Character.isLetterOrDigit(currentSymbol))
        {
            SymbolNode sNode = new SymbolNode();
            sNode.Value = currentSymbol;
            RegularExpresionNode symbolNode = sNode;
            currentSymbol = getNextSymbol();
            return symbolNode;
        }
        else if(currentSymbol=='$')
        {
             currentSymbol = getNextSymbol();
            return new EpsilonSymbol();
        }
        else
        {
           throw new ParserException("Symbol not recognized");    
        }
    }