diff --git a/Packages/Manual_tools/src/Makefile b/Packages/Manual_tools/src/Makefile index b8c19017c0f..cfe84f69eca 100644 --- a/Packages/Manual_tools/src/Makefile +++ b/Packages/Manual_tools/src/Makefile @@ -20,7 +20,8 @@ INSTALL_DIR = $(PUBLIC)/$(SYSTEM)/bin # local settings on my machine # Include path (needs probably no adaption) -INCL = -I. +INCL = -I. -I/pub/local/STL/HP # STL distribution +#INCL = -I. # Path for the HTML conversion tools for the default configuration files. # This path will be compiled into the cc_extract_html program and used for @@ -40,8 +41,8 @@ CPP = CC # The C++ compiler options (optimization, debugging, warnings, includes) #CPPOPT = -g -Wall $(INCL) # Gnu -CPPOPT = -g +w -woff 3666 $(INCL) # Sgi -#CPPOPT = -g +w $(INCL) # Sun +CPPOPT = -O -g3 +w -woff 3666 $(INCL) # Sgi +#CPPOPT = -O -g +w $(INCL) # Sun # A C compiler: # Gnu gcc 2.6.3 (or above) @@ -63,7 +64,7 @@ LINK = $(CPP) $(CPPOPT) # The flex and bison output might produce a lot of warnings with # the C++ compiler (Sgi). Special options switch these messages off. #XCOMPILE = $(COMPILE) # Gnu -XCOMPILE = $(COMPILE) -woff 3203 # SGI +XCOMPILE = $(COMPILE) -woff 3203 -woff 3666 # SGI #XCOMPILE = $(COMPILE) # Sun # Default targets to make: @@ -77,7 +78,7 @@ ALL = cc_extract cc_build_checker cc_extract_html cc_index_sort PROGRAM_FILES = cc_extract cc_build_checker cc_extract_html cc_index_sort # all the files that have to be moved into a directory in the $PATH -SCRIPT_FILES = cc_check cc_manual_to_html +SCRIPT_FILES = cc_check cc_manual_to_html cc_extract_include # all the files for the HTML config directory HTML_CONFIG_FILES = html_config_files/* diff --git a/Packages/Manual_tools/src/buffer.h b/Packages/Manual_tools/src/buffer.h index 6e56d82ddf2..79c91053615 100644 --- a/Packages/Manual_tools/src/buffer.h +++ b/Packages/Manual_tools/src/buffer.h @@ -41,10 +41,10 @@ class TextToken; // Substitute old style malloc, realloc, strdup ... // ================================================ template < class T, class I> -T* renew( const T* old, I old_size, I new_size); +T* renew( T* old, I old_size, I new_size); template < class T, class I> -T* renew( const T* old, I old_size, I new_size) { +T* renew( T* old, I old_size, I new_size) { ADT_Assert( old); ADT_Assert( strlen( old) == size_t(old_size - 1)); ADT_Assert( new_size > old_size); diff --git a/Packages/Manual_tools/src/cc_extract_html.C b/Packages/Manual_tools/src/cc_extract_html.C index 2a5e8c7e52b..770eeb89d7c 100644 --- a/Packages/Manual_tools/src/cc_extract_html.C +++ b/Packages/Manual_tools/src/cc_extract_html.C @@ -740,16 +740,26 @@ void filter_for_index_anchor( ostream& out, const char* text) { while( *text) { switch ( *text) { case '<': - out << '('; + case '(': + case '[': + case '{': + out << '6'; break; case '>': - out << '('; + case ')': + case ']': + case '}': + out << '9'; break; case '"': case '&': case ' ': out << '_'; break; + case ',': + case '.': + out << '+'; + break; default: out << *text; } diff --git a/Packages/Manual_tools/src/cc_manual_to_html b/Packages/Manual_tools/src/cc_manual_to_html index 50077efe581..ec5b5fced31 100755 --- a/Packages/Manual_tools/src/cc_manual_to_html +++ b/Packages/Manual_tools/src/cc_manual_to_html @@ -254,6 +254,16 @@ cat ${new_tmp_path}/cc_index_header ${new_tmp_path}/cc_index_sorted ${new_tmp_pa if ( $?DEBUG) echo "${new_tmp_path}/cc_anchor_filter < ${new_tmp_path}/cc_index > ${out_path}/manual_index.html" ${new_tmp_path}/cc_anchor_filter < ${new_tmp_path}/cc_index > ${out_path}/manual_index.html +# Copy the images for the advanced section to the manual. +# ------------------------------------------------------- +if ( -r ${HTML_DEFAULT_PATH}/cc_advanced_begin.gif) then + cp ${HTML_DEFAULT_PATH}/cc_advanced_begin.gif ${out_path} + if ( $?DEBUG) echo "cp ${HTML_DEFAULT_PATH}/cc_advanced_begin.gif ${out_path}" +endif +if ( -r ${HTML_DEFAULT_PATH}/cc_advanced_end.gif) then + cp ${HTML_DEFAULT_PATH}/cc_advanced_end.gif ${out_path} + if ( $?DEBUG) echo "cp ${HTML_DEFAULT_PATH}/cc_advanced_end.gif ${out_path}" +endif # Cleanup # ------- diff --git a/Packages/Manual_tools/src/extract_lex.yy b/Packages/Manual_tools/src/extract_lex.yy index afbe424cfdd..50d09f53588 100644 --- a/Packages/Manual_tools/src/extract_lex.yy +++ b/Packages/Manual_tools/src/extract_lex.yy @@ -260,6 +260,10 @@ blockintro [\{][\\]((tt)|(em)|(it)|(sc)|(sl)) BEGIN( NestingMode); return CCSTYLE; } +[\\]ccc/{noletter} { /* CCstyle formatting: change to NestingMode */ + BEGIN( NestingMode); + return CCSTYLE; + } [\\]cc(Pure)?Var{w} { if ( creationvariable) { yylval.string.text = creationvariable; @@ -373,18 +377,23 @@ blockintro [\{][\\]((tt)|(em)|(it)|(sc)|(sl)) yylval.string.len = -1; return STRING; } +[\\]ccInheritsFrom{w} { + yylval.string.text = "INHERITS FROM"; + yylval.string.len = -1; + return STRING; + } [\\]ccParameters{w} { yylval.string.text = "PARAMETERS"; yylval.string.len = -1; return STRING; } -[\\]ccConstants{w} { - yylval.string.text = "CONSTANTS"; +[\\]ccTypes{w} { + yylval.string.text = "TYPES"; yylval.string.len = -1; return STRING; } -[\\]ccTypes{w} { - yylval.string.text = "TYPES"; +[\\]ccConstants{w} { + yylval.string.text = "CONSTANTS"; yylval.string.len = -1; return STRING; } @@ -398,6 +407,21 @@ blockintro [\{][\\]((tt)|(em)|(it)|(sc)|(sl)) yylval.string.len = -1; return STRING; } +[\\]ccAccessFunctions{w} { + yylval.string.text = "ACCESS FUNCTIONS"; + yylval.string.len = -1; + return STRING; + } +[\\]ccPredicates{w} { + yylval.string.text = "PREDICATES"; + yylval.string.len = -1; + return STRING; + } +[\\]ccModifiers{w} { + yylval.string.text = "MODIFIERS"; + yylval.string.len = -1; + return STRING; + } [\\]ccImplementation{w} { yylval.string.text = "IMPLEMENTATION"; yylval.string.len = -1; @@ -408,6 +432,19 @@ blockintro [\{][\\]((tt)|(em)|(it)|(sc)|(sl)) yylval.string.len = -1; return STRING; } +[\\]begin[\{]ccAdvanced[\}] { + yylval.string.text = "(begin of an advanced section)"; + yylval.string.len = -1; + return STRING; + } +[\\]end[\{]ccAdvanced[\}] { + yylval.string.text = "(end of an advanced section)"; + yylval.string.len = -1; + return STRING; + } +[\\]ccInclude{w} { + return INCLUDE; + } [\\]ccHeading{w} { return HEADING; } @@ -439,24 +476,18 @@ blockintro [\{][\\]((tt)|(em)|(it)|(sc)|(sl)) yylval.string.len = 2; return STRING; } -[\\]ccSetTwoOfThreeColumns{w} { - return GOBBLETWOPARAMS; - } -[\\]ccSetThreeColumns{w} { - return GOBBLETHREEPARAMS; - } -[\\]ccSetOneOfTwoColumns{w} { - return GOBBLEONEPARAM; - } -[\\]ccSetTwoColumns{w} { - return GOBBLETWOPARAMS; - } -[\\]ccPropagateThreeToTwoColumns{w} { +[\\]ccSetTwoOfThreeColumns{w} { return GOBBLETWOPARAMS; } +[\\]ccSetThreeColumns{w} { return GOBBLETHREEPARAMS; } +[\\]ccThree/{noletter} { return GOBBLETHREEPARAMS; } +[\\]ccSetOneOfTwoColumns{w} { return GOBBLEONEPARAM; } +[\\]ccSetTwoColumns{w} { return GOBBLETWOPARAMS; } +[\\]ccTwo/{noletter} { return GOBBLETWOPARAMS; } +[\\]cc((PropagateThreeToTwoColumns)(ThreeToTwo)){w} { yylval.string.text = " "; yylval.string.len = 0; return SPACE; } -[\\]cc((GlueDeclarations)|(ParDims)){w} { +[\\]cc((Glue((Begin)|(End)|(Declarations))?)|(ParDims)){w} { yylval.string.text = " "; yylval.string.len = 0; return SPACE; @@ -517,15 +548,13 @@ blockintro [\{][\\]((tt)|(em)|(it)|(sc)|(sl)) yylval.character = '#'; return CHAR; } -[~] { +[~]|([\\]" ")|([\\][\n]) { yylval.string.text = " "; yylval.string.len = 1; return SPACE; } [\\][\\] { - yylval.string.text = " "; - yylval.string.len = 1; - return SPACE; + return NEWLINE; } diff --git a/Packages/Manual_tools/src/extract_syntax.y b/Packages/Manual_tools/src/extract_syntax.y index ea7eaa54983..e564b84b381 100644 --- a/Packages/Manual_tools/src/extract_syntax.y +++ b/Packages/Manual_tools/src/extract_syntax.y @@ -100,6 +100,7 @@ int yyerror( char *s); %token CCSTYLE %token CCSECTION %token CCSUBSECTION +%token INCLUDE %token HEADING %token COMMENTHEADING %token GOBBLETHREEPARAMS @@ -163,6 +164,7 @@ stmt: string { delete $1;} delete $3; } | HEADING '{' comment_sequence '}' { delete $3; } + | INCLUDE '{' comment_sequence '}' { delete $3; } | COMMENTHEADING '{' comment_sequence '}' { delete $3; } | BEGINTEXONLY nested_token_sequence ENDTEXONLY { delete $2; @@ -206,6 +208,7 @@ reduced_statement: delete $3; } | HEADING '{' comment_sequence '}' { delete $3; } + | INCLUDE '{' comment_sequence '}' { delete $3; } | COMMENTHEADING '{' comment_sequence '}' { delete $3; } | BEGINTEXONLY nested_token_sequence ENDTEXONLY { delete $2; @@ -511,6 +514,13 @@ compound_comment: '{' full_comment_sequence '}' { | HEADING '{' comment_sequence '}' { $$ = $3; } + | INCLUDE '{' comment_sequence '}' { + $$ = $3; + $$->cons( *new TextToken( "<")); + $$->cons( *new TextToken( " ", 1, true)); + $$->cons( *new TextToken( "#include")); + $$->append( *new TextToken( ">")); + } | COMMENTHEADING '{' comment_sequence '}' { $$ = $3; } diff --git a/Packages/Manual_tools/src/html_lex.yy b/Packages/Manual_tools/src/html_lex.yy index d4950a7b610..710d07b44cd 100644 --- a/Packages/Manual_tools/src/html_lex.yy +++ b/Packages/Manual_tools/src/html_lex.yy @@ -520,7 +520,8 @@ bfblockintro [\{][\\](bf) /* Specialized keywords from the manual style */ /* -------------------------------------------------------------- */ -[\\]ccStyle/{noletter} { /* CCstyle formatting: change to NestingMode */ +[\\]cc((Style)|(c))/{noletter} { + /* CCstyle formatting: change to NestingMode */ skipspaces(); BEGIN( NestingMode); return CCSTYLE; @@ -703,24 +704,30 @@ bfblockintro [\{][\\](bf) yylval.string.len = -1; return STRING; } +[\\]ccInheritsFrom/{noletter} { + skipspaces(); + yylval.string.text = "