test_class.file: storage/smiles/src/test/java/org/openscience/cdk/smiles/CxSmilesParserTest.java
test_class.identifier: CxSmilesParserTest
test_case.body: @Test
      public void skipCisTransUnspec() {
          CxSmilesState state = new CxSmilesState();
          assertThat(CxSmilesParser.processCx("|c:2,6,8,ctu:10,t:1,4,5|", state), is(not(-1)));
      }
test_case.class_method_signature: CxSmilesParserTest.skipCisTransUnspec()
test_case.full_signature: @Test public void skipCisTransUnspec()
test_case.identifier: skipCisTransUnspec
test_case.invocations: assertThat processCx is not
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void skipCisTransUnspec()
focal_class.declarator: COMMA_SEPARATOR = ','
focal_class.modifier: private static final
focal_class.original_string: private static final char COMMA_SEPARATOR = ',';
focal_class.type: char
focal_class.var_name: COMMA_SEPARATOR
focal_class.declarator: DOT_SEPARATOR   = '.'
focal_class.modifier: private static final
focal_class.original_string: private static final char DOT_SEPARATOR   = '.';
focal_class.type: char
focal_class.var_name: DOT_SEPARATOR
focal_class.file: storage/smiles/src/main/java/org/openscience/cdk/smiles/CxSmilesParser.java
focal_class.identifier: CxSmilesParser
focal_class.class_method_signature: CxSmilesParser.CxSmilesParser()
focal_class.full_signature: private  CxSmilesParser()
focal_class.identifier: CxSmilesParser
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  CxSmilesParser()
focal_class.class_method_signature: CxSmilesParser.processAtomLabels(final CharIter iter, final Map<Integer, String> dest)
focal_class.full_signature: private static boolean processAtomLabels(final CharIter iter, final Map<Integer, String> dest)
focal_class.identifier: processAtomLabels
focal_class.modifiers: private static
focal_class.parameters: (final CharIter iter, final Map<Integer, String> dest)
focal_class.return: boolean
focal_class.signature: boolean processAtomLabels(final CharIter iter, final Map<Integer, String> dest)
focal_class.class_method_signature: CxSmilesParser.readDouble(CharIter iter)
focal_class.full_signature: private static double readDouble(CharIter iter)
focal_class.identifier: readDouble
focal_class.modifiers: private static
focal_class.parameters: (CharIter iter)
focal_class.return: double
focal_class.signature: double readDouble(CharIter iter)
focal_class.class_method_signature: CxSmilesParser.processCoords(CharIter iter, CxSmilesState state)
focal_class.full_signature: private static boolean processCoords(CharIter iter, CxSmilesState state)
focal_class.identifier: processCoords
focal_class.modifiers: private static
focal_class.parameters: (CharIter iter, CxSmilesState state)
focal_class.return: boolean
focal_class.signature: boolean processCoords(CharIter iter, CxSmilesState state)
focal_class.class_method_signature: CxSmilesParser.processFragmentGrouping(final CharIter iter, final CxSmilesState state)
focal_class.full_signature: private static boolean processFragmentGrouping(final CharIter iter, final CxSmilesState state)
focal_class.identifier: processFragmentGrouping
focal_class.modifiers: private static
focal_class.parameters: (final CharIter iter, final CxSmilesState state)
focal_class.return: boolean
focal_class.signature: boolean processFragmentGrouping(final CharIter iter, final CxSmilesState state)
focal_class.class_method_signature: CxSmilesParser.isSgroupDelim(char c)
focal_class.full_signature: private static boolean isSgroupDelim(char c)
focal_class.identifier: isSgroupDelim
focal_class.modifiers: private static
focal_class.parameters: (char c)
focal_class.return: boolean
focal_class.signature: boolean isSgroupDelim(char c)
focal_class.class_method_signature: CxSmilesParser.processDataSgroups(CharIter iter, CxSmilesState state)
focal_class.full_signature: private static boolean processDataSgroups(CharIter iter, CxSmilesState state)
focal_class.identifier: processDataSgroups
focal_class.modifiers: private static
focal_class.parameters: (CharIter iter, CxSmilesState state)
focal_class.return: boolean
focal_class.signature: boolean processDataSgroups(CharIter iter, CxSmilesState state)
focal_class.class_method_signature: CxSmilesParser.processPolymerSgroups(CharIter iter, CxSmilesState state)
focal_class.full_signature: private static boolean processPolymerSgroups(CharIter iter, CxSmilesState state)
focal_class.identifier: processPolymerSgroups
focal_class.modifiers: private static
focal_class.parameters: (CharIter iter, CxSmilesState state)
focal_class.return: boolean
focal_class.signature: boolean processPolymerSgroups(CharIter iter, CxSmilesState state)
focal_class.class_method_signature: CxSmilesParser.processIntListMap(Map<Integer,List<Integer>> map, CharIter iter)
focal_class.full_signature: private static boolean processIntListMap(Map<Integer,List<Integer>> map, CharIter iter)
focal_class.identifier: processIntListMap
focal_class.modifiers: private static
focal_class.parameters: (Map<Integer,List<Integer>> map, CharIter iter)
focal_class.return: boolean
focal_class.signature: boolean processIntListMap(Map<Integer,List<Integer>> map, CharIter iter)
focal_class.class_method_signature: CxSmilesParser.processPositionalVariation(CharIter iter, CxSmilesState state)
focal_class.full_signature: private static boolean processPositionalVariation(CharIter iter, CxSmilesState state)
focal_class.identifier: processPositionalVariation
focal_class.modifiers: private static
focal_class.parameters: (CharIter iter, CxSmilesState state)
focal_class.return: boolean
focal_class.signature: boolean processPositionalVariation(CharIter iter, CxSmilesState state)
focal_class.class_method_signature: CxSmilesParser.processLigandOrdering(CharIter iter, CxSmilesState state)
focal_class.full_signature: private static boolean processLigandOrdering(CharIter iter, CxSmilesState state)
focal_class.identifier: processLigandOrdering
focal_class.modifiers: private static
focal_class.parameters: (CharIter iter, CxSmilesState state)
focal_class.return: boolean
focal_class.signature: boolean processLigandOrdering(CharIter iter, CxSmilesState state)
focal_class.class_method_signature: CxSmilesParser.processRadicals(CharIter iter, CxSmilesState state)
focal_class.full_signature: private static boolean processRadicals(CharIter iter, CxSmilesState state)
focal_class.identifier: processRadicals
focal_class.modifiers: private static
focal_class.parameters: (CharIter iter, CxSmilesState state)
focal_class.return: boolean
focal_class.signature: boolean processRadicals(CharIter iter, CxSmilesState state)
focal_class.class_method_signature: CxSmilesParser.processCx(final String str, final CxSmilesState state)
focal_class.full_signature: static int processCx(final String str, final CxSmilesState state)
focal_class.identifier: processCx
focal_class.modifiers: static
focal_class.parameters: (final String str, final CxSmilesState state)
focal_class.return: int
focal_class.signature: int processCx(final String str, final CxSmilesState state)
focal_class.class_method_signature: CxSmilesParser.processSgroupsHierarchy(CharIter iter, CxSmilesState state)
focal_class.full_signature: private static boolean processSgroupsHierarchy(CharIter iter, CxSmilesState state)
focal_class.identifier: processSgroupsHierarchy
focal_class.modifiers: private static
focal_class.parameters: (CharIter iter, CxSmilesState state)
focal_class.return: boolean
focal_class.signature: boolean processSgroupsHierarchy(CharIter iter, CxSmilesState state)
focal_class.class_method_signature: CxSmilesParser.isDigit(char c)
focal_class.full_signature: private static boolean isDigit(char c)
focal_class.identifier: isDigit
focal_class.modifiers: private static
focal_class.parameters: (char c)
focal_class.return: boolean
focal_class.signature: boolean isDigit(char c)
focal_class.class_method_signature: CxSmilesParser.skipIntList(CharIter iter, char sep)
focal_class.full_signature: private static boolean skipIntList(CharIter iter, char sep)
focal_class.identifier: skipIntList
focal_class.modifiers: private static
focal_class.parameters: (CharIter iter, char sep)
focal_class.return: boolean
focal_class.signature: boolean skipIntList(CharIter iter, char sep)
focal_class.class_method_signature: CxSmilesParser.skipIntMap(CharIter iter)
focal_class.full_signature: private static boolean skipIntMap(CharIter iter)
focal_class.identifier: skipIntMap
focal_class.modifiers: private static
focal_class.parameters: (CharIter iter)
focal_class.return: boolean
focal_class.signature: boolean skipIntMap(CharIter iter)
focal_class.class_method_signature: CxSmilesParser.processUnsignedInt(CharIter iter)
focal_class.full_signature: private static int processUnsignedInt(CharIter iter)
focal_class.identifier: processUnsignedInt
focal_class.modifiers: private static
focal_class.parameters: (CharIter iter)
focal_class.return: int
focal_class.signature: int processUnsignedInt(CharIter iter)
focal_class.class_method_signature: CxSmilesParser.processIntList(CharIter iter, char sep, List<Integer> dest)
focal_class.full_signature: private static boolean processIntList(CharIter iter, char sep, List<Integer> dest)
focal_class.identifier: processIntList
focal_class.modifiers: private static
focal_class.parameters: (CharIter iter, char sep, List<Integer> dest)
focal_class.return: boolean
focal_class.signature: boolean processIntList(CharIter iter, char sep, List<Integer> dest)
focal_class.class_method_signature: CxSmilesParser.unescape(String str)
focal_class.full_signature: static String unescape(String str)
focal_class.identifier: unescape
focal_class.modifiers: static
focal_class.parameters: (String str)
focal_class.return: String
focal_class.signature: String unescape(String str)
focal_method.body: static int processCx(final String str, final CxSmilesState state) {
  
          final CharIter iter = new CharIter(str);
  
          if (!iter.nextIf('|'))
              return -1;
  
          while (iter.hasNext()) {
              switch (iter.next()) {
                  case '$': // atom labels and values
                      // dest is atom labels by default
                      Map<Integer, String> dest;
  
                      // check for atom values
                      if (iter.nextIf("_AV:"))
                          dest = state.atomValues = new TreeMap<>();
                      else
                          dest = state.atomLabels = new TreeMap<>();
  
                      if (!processAtomLabels(iter, dest))
                          return -1;
                      break;
                  case '(': // coordinates
                      if (!processCoords(iter, state))
                          return -1;
                      break;
                  case 'c': // cis/trans/unspec ignored
                  case 't':
                      // c/t:
                      if (iter.nextIf(':')) {
                          if (!skipIntList(iter, COMMA_SEPARATOR))
                              return -1;
                      }
                      // ctu:
                      else if (iter.nextIf("tu:")) {
                          if (!skipIntList(iter, COMMA_SEPARATOR))
                              return -1;
                      }
                      break;
                  case 'r': // relative stereochemistry ignored
                      if (iter.nextIf(':')) {
                          if (!skipIntList(iter, COMMA_SEPARATOR))
                              return -1;
                      } else {
                          if (!iter.nextIf(',') && iter.curr() != '|')
                              return -1;
                      }
                      break;
                  case 'l': // lone pairs ignored
                      if (!iter.nextIf("p:"))
                          return -1;
                      if (!skipIntMap(iter))
                          return -1;
                      break;
                  case 'f': // fragment grouping
                      if (!iter.nextIf(':'))
                          return -1;
                      if (!processFragmentGrouping(iter, state))
                          return -1;
                      break;
                  case 'S': // Sgroup polymers
                      if (iter.nextIf("g:")) {
                          if (!processPolymerSgroups(iter, state))
                              return -1;
                      }
                      else if (iter.nextIf("gD:")) {
                          if (!processDataSgroups(iter, state))
                              return -1;
                          if (iter.nextIf(','))
                              break;
                      }
                      else if (iter.nextIf("gH:")) {
                          if (!processSgroupsHierarchy(iter, state))
                              return -1;
                      }
                      else {
                          return -1;
                      }
                      break;
                  case 'm': // positional variation
                      if (!iter.nextIf(':'))
                          return -1;
                      if (!processPositionalVariation(iter, state))
                          return -1;
                      break;
                  case '^': // Radicals
                      if (!processRadicals(iter, state))
                          return -1;
                      break;
                  case 'C':
                  case 'H': // coordination and hydrogen bonding ignored
                      if (!iter.nextIf(':'))
                          return -1;
                      while (iter.hasNext() && isDigit(iter.curr())) {
                          if (!skipIntList(iter, DOT_SEPARATOR))
                              return -1;
                          iter.nextIf(',');
                      }
                      break;
                  case '|': // end of CX
                      // consume optional separators
                      if (!iter.nextIf(' ')) iter.nextIf('\t');
                      return iter.pos;
                  case 'L':
                      // LO, Ligand Ordering
                      if (iter.nextIf('O')) {
                          if (!iter.nextIf(':'))
                              return -1;
                          if (!processLigandOrdering(iter, state))
                              return -1;
                      }
                      else {
                          // LP, bond connected lone pair?
                          return -1;
                      }
                      break;
                  default:
                      return -1;
              }
          }
  
          return -1;
      }
focal_method.class_method_signature: CxSmilesParser.processCx(final String str, final CxSmilesState state)
focal_method.full_signature: static int processCx(final String str, final CxSmilesState state)
focal_method.identifier: processCx
focal_method.invocations: nextIf hasNext next nextIf processAtomLabels processCoords nextIf skipIntList nextIf skipIntList nextIf skipIntList nextIf curr nextIf skipIntMap nextIf processFragmentGrouping nextIf processPolymerSgroups nextIf processDataSgroups nextIf nextIf processSgroupsHierarchy nextIf processPositionalVariation processRadicals nextIf hasNext isDigit curr skipIntList nextIf nextIf nextIf nextIf nextIf processLigandOrdering
focal_method.modifiers: static
focal_method.parameters: (final String str, final CxSmilesState state)
focal_method.return: int
focal_method.signature: int processCx(final String str, final CxSmilesState state)