;; Copyright (C) 2001 Stephen Leake ;; ;; Author: Stephen Leake , ;; ;; $Date: 2002/09/13 01:16:58 $ ;; Version: 0.1 ;; Keywords: language sensitive abbreviation template placeholder token ;; ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs; see the file COPYING. If not, write to the ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, ;; Boston, MA 02111-1307, USA. # Stephe's customized C++ templates DELETE PLACEHOLDER ",..." - /LANGUAGE="C++" - DEFINE PLACEHOLDER ",..." - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - ", ..." END DEFINE DELETE PLACEHOLDER "*&" - /LANGUAGE="C++" - DEFINE PLACEHOLDER "*&" - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=MENU - " *" " * const " " &" END DEFINE DELETE PLACEHOLDER ACCESS_SPECIFIER - /LANGUAGE="C++" - DEFINE PLACEHOLDER ACCESS_SPECIFIER - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="public, protected, private" /DUPLICATION=VERTICAL - /SEPARATOR="" - /TYPE=MENU "public" "protected" "private" END DEFINE DELETE PLACEHOLDER ACCESS_SPECIFIER: - /LANGUAGE="C++" - DEFINE PLACEHOLDER ACCESS_SPECIFIER: - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="public, protected, private" /DUPLICATION=VERTICAL - /SEPARATOR="" - /TYPE=MENU "public:" "protected:" "private:" END DEFINE DELETE PLACEHOLDER ANSI_INCLUDE_FILES - /LANGUAGE="C++" - DEFINE PLACEHOLDER ANSI_INCLUDE_FILES - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=VERTICAL - /SEPARATOR="" - /TYPE=MENU - "#include " "#include " "#include <{file_spec}>" END DEFINE DELETE PLACEHOLDER BASE_SPECIFIER - /LANGUAGE="C++" - DEFINE PLACEHOLDER BASE_SPECIFIER - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR=", " - /TYPE=NONTERMINAL - "[access_specifier] [virtual] [nested_name_specifier]" END DEFINE DELETE PLACEHOLDER BODY_FILE_HEADER - /LANGUAGE="C++" - DEFINE PLACEHOLDER BODY_FILE_HEADER - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "//" "// Purpose:" "//" "// Implement the {unit_name} unit." "//" "[references]" "[copyright]" END DEFINE DELETE PLACEHOLDER CLASS_HEAD - /LANGUAGE="C++" - DEFINE PLACEHOLDER CLASS_HEAD - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "{class_key} [nested_name_specifier] [base_clause]" END DEFINE DELETE PLACEHOLDER CLASS_SPECIFIER - /LANGUAGE="C++" - DEFINE PLACEHOLDER CLASS_SPECIFIER - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="Class specification" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL "{class_head}" "{" "public:" "" " // [comment]" " {class_name} ({parameter_declaration}... [,...]);" "" " // [comment]" " ~{class_name} ();" "" " [member_declaration]..." "" "[access_specifier:]" "" " [member_declaration]..." "" "}; // {class_name}" END DEFINE DELETE PLACEHOLDER CLASS_MENU - /LANGUAGE="C++" - DEFINE PLACEHOLDER CLASS_MENU - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="menu of possible uses of 'class' keyword" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=MENU "class_specifier"/PLACEHOLDER "class [identifier] [= {type_specifier}... [abstract_declarator]]" {placeholder_line}... END DEFINE DELETE TOKEN CLASS - /LANGUAGE="C++" - DEFINE TOKEN CLASS - /LANGUAGE="C++" - /PLACEHOLDER=CLASS_MENU END DEFINE DELETE PLACEHOLDER COMPILATION_UNIT - /LANGUAGE="C++" - DEFINE PLACEHOLDER COMPILATION_UNIT - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" - /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=MENU - "unit_specification"/PLACEHOLDER "unit_body"/PLACEHOLDER "main_program"/PLACEHOLDER END DEFINE DELETE PLACEHOLDER CONST - /LANGUAGE="C++" - DEFINE PLACEHOLDER CONST - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL "const " END DEFINE DELETE PLACEHOLDER COPYRIGHT - /LANGUAGE="C++" - DEFINE PLACEHOLDER COPYRIGHT - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=MENU - "nasa_copyright"/PLACEHOLDER END DEFINE DELETE PLACEHOLDER DECL_SPECIFIER - /LANGUAGE="C++" - DEFINE PLACEHOLDER DECL_SPECIFIER - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=HORIZONTAL - /SEPARATOR=" " - /TYPE=MENU - "type_specifier"/PLACEHOLDER "storage_class_specifier"/PLACEHOLDER "function_specifier"/PLACEHOLDER "friend" "typedef"/TOKEN END DEFINE DELETE PLACEHOLDER DESCRIPTION - /LANGUAGE="C++" - DEFINE PLACEHOLDER DESCRIPTION - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" - /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=TERMINAL "Enter some text." END DEFINE DELETE PLACEHOLDER FILE_SPEC - /LANGUAGE="C++" - DEFINE PLACEHOLDER FILE_SPEC - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=TERMINAL - "a file name" END DEFINE DELETE PLACEHOLDER FUNCTION_DECLARATION - /LANGUAGE="C++" - DEFINE PLACEHOLDER FUNCTION_DECLARATION - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="declares a function" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "// [comment]" "{type_specifier} {function_name} ([parameter_declaration]...[,...]);" "" END DEFINE DELETE PLACEHOLDER FUNCTION_DEFINITION - /LANGUAGE="C++" - DEFINE PLACEHOLDER FUNCTION_DEFINITION - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="defines a function" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "{decl_specifier}... [class_name]::{function_name} ({parameter_declaration_clause})" "{" " [variable_decl]..." "" " {statement}..." "}" END DEFINE DELETE PLACEHOLDER FUNCTION_NAME - /LANGUAGE="C++" - DEFINE PLACEHOLDER FUNCTION_NAME - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=TERMINAL - "a function name" END DEFINE DELETE PLACEHOLDER INCLUDE_FILES - /LANGUAGE="C++" - DEFINE PLACEHOLDER INCLUDE_FILES - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=VERTICAL - /SEPARATOR="" - /TYPE=NONTERMINAL - "#include "{file_spec}"" END DEFINE DELETE PLACEHOLDER MAIN_FILE_HEADER - /LANGUAGE="C++" - DEFINE PLACEHOLDER MAIN_FILE_HEADER - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "//" "// Purpose:" "// {description}" "//" "// References:" "// {description}" "//" "[copyright]" "//" END DEFINE DELETE PLACEHOLDER MAIN_PROGRAM - /LANGUAGE="C++" - DEFINE PLACEHOLDER MAIN_PROGRAM - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "[main_file_header]" "" "[ansi_include_files]..." "[include_files]..." "" "[function_declaration]..." "" "[function_definition]..." "" "int main (int argc, char *argv[])" "{" " [variable_decl]..." "" " {statement}..." " return 0;" "} // end main" "// end of file" END DEFINE DELETE PLACEHOLDER MEMBER_DECLARATION - /LANGUAGE="C++" - DEFINE PLACEHOLDER MEMBER_DECLARATION - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=MENU - "function_declaration"/PLACEHOLDER "function_definition"/PLACEHOLDER "[decl_specifier]... [member_declarator]...;" "{qualified_id};" "using_declaration"/PLACEHOLDER "template_declaration"/PLACEHOLDER END DEFINE DELETE PLACEHOLDER MEMBER_SPECIFICATION - /LANGUAGE="C++" - DEFINE PLACEHOLDER MEMBER_SPECIFICATION - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=VERTICAL - /SEPARATOR="" - /TYPE=NONTERMINAL - "[{access_specifier} :][member_declaration]..." END DEFINE DELETE PLACEHOLDER NASA_COPYRIGHT - /LANGUAGE="C++" - DEFINE PLACEHOLDER NASA_COPYRIGHT - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "// Notice" "//" "// Copyright (C) 2001 National Aeronautics and Space Administration." "// No copyright is claimed in the United States under Title 17, U.S." "// Code. All Foreign Rights are Reserved to the U.S. Government." "//" "// Disclaimer " "//" "// This software is provided "as is" without any warranty of any kind," "// either express, implied, or statutory, including, but not limited" "// to, any warranty that the software will conform to specifications," "// any implied warranties of merchantability, fitness for a particular" "// purpose, and freedom from infringement, and any warranty that the" "// documentation will conform to the program, or any warranty that the" "// software will be error free." "//" "// In no event shall NASA be liable for any damages, including, but not" "// limited to direct, indirect, special or consequential damages," "// arising out of, resulting from, or in any way connected with the" "// software or its documentation. Whether or not based upon warranty," "// contract, tort or otherwise, and whether or not loss was sustained" "// from, or arose out of the results of, or use of, the software," "// documentation or services provided hereunder." "//" "// Export Control" "// " "// The recipient of this software from NASA shall not export or" "// re-export directly or indirectly (including via remote access," "// i.e. Internet) any part of this software or its documentation to any" "// country for which a validated license is required for such export or" "// re-export under the EXPORT LAWS without first obtaining such a" "// validated license." "//" END DEFINE DELETE PLACEHOLDER NESTED_NAME_SPECIFIER - /LANGUAGE="C++" - DEFINE PLACEHOLDER NESTED_NAME_SPECIFIER - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" - /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=MENU - "{identifier}" "{class_or_namespace_name}::[nested_name_specifier]" END DEFINE DELETE PLACEHOLDER PARAMETER_DECLARATION - /LANGUAGE="C++" - DEFINE PLACEHOLDER PARAMETER_DECLARATION - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="parameter declaration, restricted for good style" /DUPLICATION=VERTICAL - /SEPARATOR=", " - /TYPE=NONTERMINAL - "[const]{type_name} {identifier}[= {assignment_expression}]" END DEFINE DELETE PLACEHOLDER REFERENCES - /LANGUAGE="C++" - DEFINE PLACEHOLDER REFERENCES - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL "// References:" "//" "// {description}" "//" END DEFINE DELETE PLACEHOLDER SPEC_FILE_HEADER - /LANGUAGE="C++" - DEFINE PLACEHOLDER SPEC_FILE_HEADER - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "//" "// Purpose:" "//" "// {description}" "//" "[references]" "[copyright]" END DEFINE DELETE PLACEHOLDER TYPE_NAME - /LANGUAGE="C++" - DEFINE PLACEHOLDER TYPE_NAME - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="A type name" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL "[nested_name_specifier][*&]" END DEFINE DELETE PLACEHOLDER TYPE_SPECIFIER - /LANGUAGE="C++" - DEFINE PLACEHOLDER TYPE_SPECIFIER - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="A complete type specifier" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=MENU "[const][nested_name_specifier] [*&]" "void [*&]" END DEFINE DELETE PLACEHOLDER UNIT_BODY - /LANGUAGE="C++" - DEFINE PLACEHOLDER UNIT_BODY - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "[body_file_header]" "" "#include "{unit_name}.hpp"" "" "[ansi_include_files]..." "[include_files]..." "" "[function_definition]..." "// end of file" END DEFINE DELETE PLACEHOLDER UNIT_NAME - /LANGUAGE="C++" - DEFINE PLACEHOLDER UNIT_NAME - /LANGUAGE="C++" - /AUTO_SUBSTITUTE - /DESCRIPTION="" - /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=TERMINAL "unit_name is not implemented" END DEFINE DELETE PLACEHOLDER UNIT_SPECIFICATION - /LANGUAGE="C++" - DEFINE PLACEHOLDER UNIT_SPECIFICATION - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "[spec_file_header]" "#ifndef _[unit_name]_" "#define _[unit_name]_" "" "[ansi_include_files]..." "[include_files]..." "" "[class_specifier]..." "#endif // end of file" "" END DEFINE DELETE PLACEHOLDER TYPEDEF_DECLARATION - /LANGUAGE="C++" - DEFINE PLACEHOLDER TYPEDEF_DECLARATION - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "typedef [type_qualifier]... {data_type_specifier} {declarator}...;" END DEFINE DELETE PLACEHOLDER TYPE_QUALIFIER - /LANGUAGE="C++" - DEFINE PLACEHOLDER TYPE_QUALIFIER - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR=" " - /TYPE=MENU - "const" "volatile" END DEFINE DELETE PLACEHOLDER DATA_TYPE_SPECIFIER - /LANGUAGE="C++" - DEFINE PLACEHOLDER DATA_TYPE_SPECIFIER - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=MENU - "void" "char" "int" "float" "double" "unsigned char" "signed char" "unsigned short int" "signed short int" "short int" "unsigned int" "signed int" "unsigned long int" "signed long int" "long int" "struct_specifier"/PLACEHOLDER "union_specifier"/PLACEHOLDER "enum_specifier"/PLACEHOLDER "type_name"/PLACEHOLDER END DEFINE DELETE TOKEN TYPEDEF - /LANGUAGE="C++" - DEFINE TOKEN TYPEDEF - /LANGUAGE="C++" - /PLACEHOLDER=TYPEDEF_DECLARATION END DEFINE DELETE PLACEHOLDER STRUCT_SPECIFIER - /LANGUAGE="C++" - DEFINE PLACEHOLDER STRUCT_SPECIFIER - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" - /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "struct [identifier] [{{struct_declaration}...}]" END DEFINE DELETE PLACEHOLDER {{STRUCT_DECLARATION}...} - /LANGUAGE="C++" - DEFINE PLACEHOLDER {{STRUCT_DECLARATION}...} - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" - /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "{" " {struct_declaration}..." "}" END DEFINE DELETE PLACEHOLDER STRUCT_DECLARATION - /LANGUAGE="C++" - DEFINE PLACEHOLDER STRUCT_DECLARATION - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" - /DUPLICATION=VERTICAL - /SEPARATOR="; " - /TYPE=NONTERMINAL - "{data_type_specifier} {declarator}" END DEFINE DELETE PLACEHOLDER ENUM_SPECIFIER - /LANGUAGE="C++" - DEFINE PLACEHOLDER ENUM_SPECIFIER - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "enum [identifier]" "{" " {enumerator}..." "}" END DEFINE DELETE PLACEHOLDER ENUMERATOR - /LANGUAGE="C++" - DEFINE PLACEHOLDER ENUMERATOR - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR=", " - /TYPE=NONTERMINAL - "{identifier} [= {constant_expression}]" END DEFINE DELETE PLACEHOLDER IF_STATEMENT - /LANGUAGE="C++" - DEFINE PLACEHOLDER IF_STATEMENT - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "if ({condition})" "{" " {statement}..." "}" "[else_part]" END DEFINE DELETE PLACEHOLDER ELSE_PART - /LANGUAGE="C++" - DEFINE PLACEHOLDER ELSE_PART - /LANGUAGE="C++" - /NOAUTO_SUBSTITUTE - /DESCRIPTION="" /DUPLICATION=CONTEXT_DEPENDENT - /SEPARATOR="" - /TYPE=NONTERMINAL - "else" "{" " {statement}..." "}" END DEFINE ;; end of file