Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [cdt-dev] add keywords to Editor




From: josieenfrance@xxxxxxxxxxx
To: cdt-dev@xxxxxxxxxxx
Date: Wed, 14 Apr 2010 22:14:38 +0800
Subject: [cdt-dev] add keywords to Editor

hi all,
In our c programs, some keywords like __irq, __asm are considered as syntax errors.
ex:
void __irq DMA1_isr_CH0_INT(void)
{
  /* Clearing of corresponding interrupt request flag needed */
  DMAC1INTTCCLEAR = 1;
 
  printf("[DMA1_isr_CH0_INT]\n");
  ICU_Polling_Reenable(DMA1_CH0_INT);

}

for adding these keywords, I created a plugin, 
plugin.xml:
   <extension
         point="org.eclipse.cdt.core.language">
      <language
            class="gccExtends"
            id="language1"
            name="GCCextends">
      </language>
   </extension>
</plugin>

class file:
public class gccExtends extends GCCLanguage {
protected static final ExtendCscannerExtensionConfiguration ExtendC_SCANNER_EXTENSION = new ExtendCscannerExtensionConfiguration(); 
private static final gccExtends DEFAULT_INSTANCE = new gccExtends();
public static final String ID = CCorePlugin.PLUGIN_ID + ".extend"; //$NON-NLS-1$ 
public static gccExtends getDefault() {
return DEFAULT_INSTANCE;
}
public String getId() {
return ID; 
}
protected IScannerExtensionConfiguration getScannerExtensionConfiguration()
{
return ExtendC_SCANNER_EXTENSION;
}

}


public class ExtendCscannerExtensionConfiguration extends GCCScannerExtensionConfiguration {

public static final String IRQ = "__irq";
public static final char[] extendcIRQ = "__irq".toCharArray();

public CharArrayIntMap getAdditionalKeywords() {
CharArrayIntMap additionalCPPKeywords = new CharArrayIntMap(0, 0);
additionalCPPKeywords.put( ExtendCscannerExtensionConfiguration.extendcIRQ,IToken.t_class);
return additionalCPPKeywords;
}
}

the keywords are added, but I got the error "the currently displayed page contains invalid values" and the function call like:
  ICU_IrqEnable();
  ICU_FiqEnable();  
go to declaration does not work yet.


Thanks a lot for your help

I've got the exceptions:
java.lang.IllegalArgumentException
at org.eclipse.core.runtime.ListenerList.remove(ListenerList.java:155)
at org.eclipse.cdt.core.model.LanguageManager.unregisterLanguageChangeListener(LanguageManager.java:605)
at org.eclipse.cdt.internal.ui.language.ProjectLanguageMappingPropertyPage.dispose(ProjectLanguageMappingPropertyPage.java:186)
at org.eclipse.ui.internal.dialogs.PropertyPageNode.disposeResources(PropertyPageNode.java:73)
at org.eclipse.jface.preference.PreferenceDialog$2.run(PreferenceDialog.java:301)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
at org.eclipse.jface.preference.PreferenceDialog.close(PreferenceDialog.java:315)
at org.eclipse.ui.internal.dialogs.FilteredPreferenceDialog.close(FilteredPreferenceDialog.java:702)
at org.eclipse.jface.preference.PreferenceDialog.cancelPressed(PreferenceDialog.java:274)
at org.eclipse.jface.preference.PreferenceDialog.buttonPressed(PreferenceDialog.java:237)
at org.eclipse.jface.dialogs.Dialog$2.widgetSelected(Dialog.java:624)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:228)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3910)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3503)
at org.eclipse.jface.window.Window.runEventLoop(Window.java:825)
at org.eclipse.jface.window.Window.open(Window.java:801)
at org.eclipse.ui.dialogs.PropertyDialogAction.run(PropertyDialogAction.java:157)
at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3910)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3503)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2221)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
at org.eclipse.equinox.launcher.Main.main(Main.java:1287)



Votre messagerie et bien plus où que vous soyez. Passez à Windows Live Hotmail, c'est gratuit ! Inscrivez-vous

Hotmail : une messagerie performante et gratuite avec une sécurité signée Microsoft Profitez-en

Back to the top