KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > armedbear > j > CppMode


1 /*
2  * CppMode.java
3  *
4  * Copyright (C) 1998-2002 Peter Graves
5  * $Id: CppMode.java,v 1.1.1.1 2002/09/24 16:08:28 piso Exp $
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20  */

21
22 package org.armedbear.j;
23
24 public final class CppMode extends CMode implements Constants, Mode
25 {
26     private static final String JavaDoc[] cppConditionals = {
27         "if",
28         "else",
29         "do",
30         "while",
31         "for",
32         "switch",
33         "try",
34         "catch"
35     };
36
37     // Since this class is final, we may as well construct the singleton class
38
// instance right away.
39
private static CppMode mode = new CppMode();
40
41     private CppMode()
42     {
43         super(CPP_MODE, CPP_MODE_NAME);
44         keywords = new Keywords(this);
45         conditionals = cppConditionals;
46     }
47
48     public static final Mode getMode()
49     {
50         return mode;
51     }
52
53     public final String JavaDoc getCommentStart()
54     {
55         return "// ";
56     }
57
58     public final String JavaDoc getCommentEnd()
59     {
60         return null;
61     }
62
63     public final Formatter getFormatter(Buffer buffer)
64     {
65         return new CFormatter(buffer, LANGUAGE_CPP);
66     }
67
68     protected void setKeyMapDefaults(KeyMap km)
69     {
70         super.setKeyMapDefaults(km);
71         km.unmapKey(':'); // No electric ':'.
72
}
73
74     public Tagger getTagger(SystemBuffer buffer)
75     {
76         return new CppTagger(buffer);
77     }
78
79     public boolean hasQualifiedNames()
80     {
81         return true;
82     }
83
84     public boolean isQualifiedName(String JavaDoc s)
85     {
86         return s.indexOf("::") >= 0;
87     }
88 }
89
Popular Tags