code: public static final BELParseResults parse(final String belScriptSyntax) {
          CharStream stream = new ANTLRStringStream(belScriptSyntax);
          BELScriptLexer lexer = new BELScriptLexer(stream);
          TokenStream tstream = new CommonTokenStream(lexer);
          BELScriptParser parser = new BELScriptParser(tstream);
  
          // parse and extract syntax errors
          BELScriptParser.document_return result = null;
          try {
              result = parser.document();
          } catch (RecognitionException e) {}
          List<BELParseErrorException> syntaxErrors = parser.getSyntaxErrors();
          List<BELParseWarningException> syntaxWarnings =
                  new ArrayList<BELParseWarningException>();
  
          BELDocument doc = null;
          if (result != null) {
              // walk and extract semantic errors
              CommonTreeNodeStream nodeStream =
                      new CommonTreeNodeStream(result.tree);
              BELScriptWalker walker = new BELScriptWalker(nodeStream);
              document_return document = null;
              try {
              document = walker.document();
              } catch (RecognitionException e) {}
  
              if (document != null) {
                  doc = document.doc;
              }
  
              syntaxWarnings.addAll(walker.getSyntaxWarnings());
              syntaxErrors.addAll(walker.getSyntaxErrors());
          }
  
          return new BELParseResults(syntaxWarnings, syntaxErrors, doc);
      }
docs: Parse BEL Script contents and return a {@link BELParseResults} object.
  
  @param belScriptSyntax
  @return {@link BELParseResults}