<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="com.wudsn.ide.lng" xmlns="http://www.w3.org/2001/XMLSchema">
<annotation>
      <appInfo>
         <meta.schema plugin="com.wudsn.ide.lng" id="compilers" name="Compilers"/>
      </appInfo>
      <documentation>
         This extension point allows for adding new assemblers and compilers to the WUDSN IDE.
      </documentation>
   </annotation>

   <element name="extension">
      <annotation>
         <appInfo>
            <meta.element />
         </appInfo>
      </annotation>
      <complexType>
         <sequence minOccurs="1" maxOccurs="unbounded">
            <element ref="compiler"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="compiler">
      <complexType>
         <choice>
            <sequence>
               <element ref="supportedTarget" minOccurs="1" maxOccurs="unbounded"/>
            </sequence>
            <sequence>
            </sequence>
         </choice>
         <attribute name="language" use="required">
            <annotation>
               <documentation>
                  The technical ID of the language.
               </documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <enumeration value="ASM">
                  </enumeration>
                  <enumeration value="PAS">
                  </enumeration>
               </restriction>
            </simpleType>
         </attribute>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  The technical ID of the compiler. Must consist of lower case letters or digits. Must be unique without one language.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string" use="required">
            <annotation>
               <documentation>
                  Translatable name of the compiler. Typically contains only upper case letters.
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="class" type="string" use="required">
            <annotation>
               <documentation>
                  The name of the compiler class.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="com.wudsn.ide.lng.compiler.Compiler:"/>
               </appInfo>
            </annotation>
         </attribute>
         <attribute name="version" type="string" use="required">
            <annotation>
               <documentation>
                  Supported (minimum) version of the compiler. All compiler directives and major compiler features up to this version have been incorporated into this version of WUDSN IDE.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="homePageURL" type="string">
            <annotation>
               <documentation>
                  The absolute URL pointing to the homepage of the compiler where the latest version can be downloaded.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="helpDocumentPaths" type="string">
            <annotation>
               <documentation>
                  The relative paths to the local help documents. 
Multiple paths are separated by comma.
Adding a language constraint in parentheses like &quot;./doc-de.html (de)&quot; acts as filter.
Each file path is evluated based on the absolute path of the compiler executable in the preferences.
Alternatively abolute URLs to web sites can be specified. They are used, if not file paths match.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="defaultParameters" type="string" use="required">
            <annotation>
               <documentation>
                  The default compiler parameters which are use if not other parameters are specified in the preferences.
               </documentation>
            </annotation>
         </attribute>
         <attribute name="defaultHardware" use="required">
            <annotation>
               <documentation>
                  The default hardware which is assumed, if no source annotation is found.
               </documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <enumeration value="APPLE2">
                  </enumeration>
                  <enumeration value="ATARI2600">
                  </enumeration>
                  <enumeration value="ATARI7800">
                  </enumeration>
                  <enumeration value="ATARI8BIT">
                  </enumeration>
                  <enumeration value="C64">
                  </enumeration>
                  <enumeration value="NES">
                  </enumeration>
                  <enumeration value="TEST">
                  </enumeration>
               </restriction>
            </simpleType>
         </attribute>
      </complexType>
   </element>

   <element name="supportedTarget">
      <complexType>
         <attribute name="target">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
            <simpleType>
               <restriction base="string">
                  <enumeration value="MOS6502">
                  </enumeration>
                  <enumeration value="MOS6502_ILLEGAL">
                  </enumeration>
                  <enumeration value="MOS65C02">
                  </enumeration>
                  <enumeration value="MOS6502_DTV">
                  </enumeration>
                  <enumeration value="MOS65816">
                  </enumeration>
                  <enumeration value="PASCAL">
                  </enumeration>
               </restriction>
            </simpleType>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         WUDSN IDE 1.1.0
      </documentation>
   </annotation>


   <annotation>
      <appInfo>
         <meta.section type="apiinfo"/>
      </appInfo>
      <documentation>
         To implement this extension point, you have to create a sub-class of com.wudsn.ide.lng.compiler.Compiler, a sub-class of com.wudsn.ide.lng.compiler.parser.CompilerSourceParser and a sub-class of com.wudsn.ide.lng.compiler.CompilerLogParser. In the constructor of the compiler you have to set the source parser instance. In the &quot;createLogParser&quot; method of the compiler you have to create a new instance of the corresponding log parser.
      </documentation>
   </annotation>


   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         (c) 2009 Peter Dell
      </documentation>
   </annotation>

</schema>
