code: public CharSequence process(CharSequence source) {
          Context context = new Context();
          StringBuilder target = new StringBuilder(source.length());
          context.setTarget(target);
          Source source1 = new Source(source);
          source1.setConstantSet(constants);
          context.setSource(source1);
          context.setScope(scope);
          context.setNestingLimit(nestingLimit*2);
          if (params != null) {
              for (Map.Entry<String, CharSequence> entry : params.entrySet()) {
                  context.setAttribute(entry.getKey(), entry.getValue());
              }
          }
  
          try {
              prefix.generate(context);
              boolean success = scope.process(context);
              suffix.generate(context);
  
              if(!success){
                  target = new StringBuilder(0);
              }
          } catch (NestingException e) {
              target = new StringBuilder(0);
              if(propagateNestingException){
                  throw new TextProcessorNestingException(nestingLimit);
              }
          }
  
          return target;
      }
docs: Process bbcodes
  1. Escape the xml special symbols
  2. replace bbcodes to HTML-tags
  3. replace symbols \r\n to HTML-tag "&lt;br/&gt;"
  
  @param source the source string
  @return result string
  @see org.kefirsf.bb.TextProcessor#process(CharSequence)