View Javadoc

1   /*
2    * CCTokenMarker.java - C++ token marker
3    * Copyright (C) 1999 Slava Pestov
4    *
5    * You may use and modify this package for any purpose. Redistribution is
6    * permitted, in both source and binary form, provided that this notice
7    * remains intact in all source distributions of this package.
8    */
9   
10  package org.syntax.jedit.tokenmarker;
11  
12  import org.syntax.jedit.KeywordMap;
13  
14  /***
15   * C++ token marker.
16   * 
17   * @author Slava Pestov
18   * @version $Id: CCTokenMarker.java,v 1.6 1999/12/13 03:40:29 sp Exp $
19   */
20  public class CCTokenMarker extends CTokenMarker
21  {
22  	public CCTokenMarker()
23  	{
24  		super( true, getKeywords() );
25  	}
26  
27  	public static KeywordMap getKeywords()
28  	{
29  		if( ccKeywords == null )
30  		{
31  			ccKeywords = new KeywordMap( false );
32  
33  			ccKeywords.add( "and", Token.KEYWORD3 );
34  			ccKeywords.add( "and_eq", Token.KEYWORD3 );
35  			ccKeywords.add( "asm", Token.KEYWORD2 ); //
36  			ccKeywords.add( "auto", Token.KEYWORD1 ); //
37  			ccKeywords.add( "bitand", Token.KEYWORD3 );
38  			ccKeywords.add( "bitor", Token.KEYWORD3 );
39  			ccKeywords.add( "bool", Token.KEYWORD3 );
40  			ccKeywords.add( "break", Token.KEYWORD1 ); //
41  			ccKeywords.add( "case", Token.KEYWORD1 ); //
42  			ccKeywords.add( "catch", Token.KEYWORD1 );
43  			ccKeywords.add( "char", Token.KEYWORD3 ); //
44  			ccKeywords.add( "class", Token.KEYWORD3 );
45  			ccKeywords.add( "compl", Token.KEYWORD3 );
46  			ccKeywords.add( "const", Token.KEYWORD1 ); //
47  			ccKeywords.add( "const_cast", Token.KEYWORD3 );
48  			ccKeywords.add( "continue", Token.KEYWORD1 ); //
49  			ccKeywords.add( "default", Token.KEYWORD1 ); //
50  			ccKeywords.add( "delete", Token.KEYWORD1 );
51  			ccKeywords.add( "do", Token.KEYWORD1 ); //
52  			ccKeywords.add( "double", Token.KEYWORD3 ); //
53  			ccKeywords.add( "dynamic_cast", Token.KEYWORD3 );
54  			ccKeywords.add( "else", Token.KEYWORD1 ); //
55  			ccKeywords.add( "enum", Token.KEYWORD3 ); //
56  			ccKeywords.add( "explicit", Token.KEYWORD1 );
57  			ccKeywords.add( "export", Token.KEYWORD2 );
58  			ccKeywords.add( "extern", Token.KEYWORD2 ); //
59  			ccKeywords.add( "false", Token.LITERAL2 );
60  			ccKeywords.add( "float", Token.KEYWORD3 ); //
61  			ccKeywords.add( "for", Token.KEYWORD1 ); //
62  			ccKeywords.add( "friend", Token.KEYWORD1 );
63  			ccKeywords.add( "goto", Token.KEYWORD1 ); //
64  			ccKeywords.add( "if", Token.KEYWORD1 ); //
65  			ccKeywords.add( "inline", Token.KEYWORD1 );
66  			ccKeywords.add( "int", Token.KEYWORD3 ); //
67  			ccKeywords.add( "long", Token.KEYWORD3 ); //
68  			ccKeywords.add( "mutable", Token.KEYWORD3 );
69  			ccKeywords.add( "namespace", Token.KEYWORD2 );
70  			ccKeywords.add( "new", Token.KEYWORD1 );
71  			ccKeywords.add( "not", Token.KEYWORD3 );
72  			ccKeywords.add( "not_eq", Token.KEYWORD3 );
73  			ccKeywords.add( "operator", Token.KEYWORD3 );
74  			ccKeywords.add( "or", Token.KEYWORD3 );
75  			ccKeywords.add( "or_eq", Token.KEYWORD3 );
76  			ccKeywords.add( "private", Token.KEYWORD1 );
77  			ccKeywords.add( "protected", Token.KEYWORD1 );
78  			ccKeywords.add( "public", Token.KEYWORD1 );
79  			ccKeywords.add( "register", Token.KEYWORD1 );
80  			ccKeywords.add( "reinterpret_cast", Token.KEYWORD3 );
81  			ccKeywords.add( "return", Token.KEYWORD1 ); //
82  			ccKeywords.add( "short", Token.KEYWORD3 ); //
83  			ccKeywords.add( "signed", Token.KEYWORD3 ); //
84  			ccKeywords.add( "sizeof", Token.KEYWORD1 ); //
85  			ccKeywords.add( "static", Token.KEYWORD1 ); //
86  			ccKeywords.add( "static_cast", Token.KEYWORD3 );
87  			ccKeywords.add( "struct", Token.KEYWORD3 ); //
88  			ccKeywords.add( "switch", Token.KEYWORD1 ); //
89  			ccKeywords.add( "template", Token.KEYWORD3 );
90  			ccKeywords.add( "this", Token.LITERAL2 );
91  			ccKeywords.add( "throw", Token.KEYWORD1 );
92  			ccKeywords.add( "true", Token.LITERAL2 );
93  			ccKeywords.add( "try", Token.KEYWORD1 );
94  			ccKeywords.add( "typedef", Token.KEYWORD3 ); //
95  			ccKeywords.add( "typeid", Token.KEYWORD3 );
96  			ccKeywords.add( "typename", Token.KEYWORD3 );
97  			ccKeywords.add( "union", Token.KEYWORD3 ); //
98  			ccKeywords.add( "unsigned", Token.KEYWORD3 ); //
99  			ccKeywords.add( "using", Token.KEYWORD2 );
100 			ccKeywords.add( "virtual", Token.KEYWORD1 );
101 			ccKeywords.add( "void", Token.KEYWORD1 ); //
102 			ccKeywords.add( "volatile", Token.KEYWORD1 ); //
103 			ccKeywords.add( "wchar_t", Token.KEYWORD3 );
104 			ccKeywords.add( "while", Token.KEYWORD1 ); //
105 			ccKeywords.add( "xor", Token.KEYWORD3 );
106 			ccKeywords.add( "xor_eq", Token.KEYWORD3 );
107 
108 			// non ANSI keywords
109 			ccKeywords.add( "NULL", Token.LITERAL2 );
110 		}
111 		return ccKeywords;
112 	}
113 
114 	// private members
115 	private static KeywordMap ccKeywords;
116 }