Пример #1
0
// Main
int main(int argc, char *argv[])
{
  if (argc != 2)
  {
    usage( argv[0], NULL );
    exit(0);
  }

  if (getprefix(argv[1]) )
  {

    if (splitpref())
    {
      if ( convert_left_right() )
      {
        write_banner();
        printf("\n%18s  -->  %s\n", MSG_TYPE, ident_type(w) );
        write_8w_compr( w, MSG_COMPRESSED );
        printf("/%d\n", preflen);
        write_8w( w, MSG_EXPANDED );

        if (preflen != 128)
        {
          convb2t( w, tpref);
          genmask(preflen, tmask);
        
          genmask(128, tw);
          logic_xor(tmask, tw, tt);
        
          convt2b(tt, t);
        
          logic_and(tpref, tmask, tw);
          convt2b(tw, w);
          write_8w( w, MSG_BLOCK_BEGIN );
        
          logic_or(tw, tt, tq);
          convt2b(tq, q);
          write_8w( q, MSG_BLOCK_END );
        
          printf("\n");
          line_centr_text(MSG_ZOOM_BLK_BIN, '~');
          printf("\n\n");
          write_area_zoom(tw,preflen);
          write_area_zoom(tq,preflen);
          write_ptr_zoom(tq,preflen);
        }
        printf("\n");
      }
      else
        usage(argv[0], MSG_ERR_TOO_MANY_WORDS );
    }
    else
     usage(argv[0], MSG_ERR_WRONG_USE );
    
  }
  else
    usage(argv[0], MSG_ERR_INV_CHR );

  return 0;
}
Пример #2
0
	inline ASTNode* AST::logic_xor(const LexerLocation& loc, ASTNode* left, ASTNode* right) {
		ASTNode* n = logic_and(loc, left, right); n->type = ASTNodeTypeXor;
		return n;
	}