deep

a Cross Development Platform for Java

User Tools

Site Tools


dev:configuration_syntax
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


dev:configuration_syntax [2016/02/25 13:33] (current) – created - external edit 127.0.0.1
Line 1: Line 1:
 +====== Syntax for Configuration Files ======
 +<code>
 +Config                           = MetaBlock { ConstantsBlock | MemoryMapBlock | RegisterMapBlock | 
 +                                   TargetConfigurationBlock | RegInitBlock | ProjectBlock | 
 +                                   OperatingSystemBlock | SysConstBlock } .
  
 +MetaBlock                        = "meta" "{" VersionAssigment FileDescAssigment [ImportAssigment] "}" .
 +ConstantsBlock                   = "constants" "{" {VarAssigment} "}" .
 +MemoryMapBlock                   = "memorymap" "{" {DeviceBlock | SegmentBlock | RegInitBlock | 
 +                                   ModulesBlock | SegmentArray } "}" .
 +RegisterMapBlock                 = "registermap" "{" { RegisterBlock } "}"
 +TargetConfigurationBlock         = "targetconfiguration" Designator "{" ModulesBlock | RegInitBlock | 
 +                                   SystemTableBlock  "}" .
 +RegInitBlock                     = "reginit" "{" { VarAssigment } "}" .
 +ProjectBlock                     = "project" "{" { RootClassAssignments | LibPathAssignment | 
 +                                   DebugLevelAssignment | PrintLevelAssignment } "}" .
 +OperatingSystemBlock             = "operatingsystem" "{" { SystemClassBlock } "}" .
 +SysConstBlock                    = "sysconst" "{" {VarAssigment} "}" .
 +
 +DeviceBlock                      = "device" Designator "{" [AttributeAssigment] [BaseAssigment] 
 +                                   [WidthAssigment] [SizeAssigment][TechnologyAssignment] 
 +                                   [MemorytypeAssignment] [Memorysector] [MemorysectorArray] "}" .
 +SegmentBlock                     = "segment" SegmentDesignator "{" ([AttributeAssigment] [BaseAssigment] 
 +                                   [WidthAssigment] [SizeAssigment]) {SegmentArray | SegmentBlock} "}".
 +ModulesBlock                     = "modules" "{" { ModuleAssignment } "}" .
 +SegmentArray                     = "segmentarray" SegmentDesignator  "{" SegmentSizeAssignment 
 +                                   [AttributeAssigment] [BaseAssigment] [ArraySizeAssignment]
 +                                   [WidhtAssignment][NofSegmentAssignment] "}" .
 +RegisterBlock                    = "register" Designator "{" TypeAssignment AddressAssignment 
 +                                   SizeAssignment [registerRepresentationAssignment] "}"
 +SystemTableBlock          = "system" "{" ModuleAssignment {ModuleAssignment} "}" .
 +SystemClassBlock = ("kernel" | "heap" | "us" | "exception" | "lowlevel"
 +                                   "exceptionbaseclass") "{" ClassAssignment [MethodBlock] "}" .
 +MethodBlock                      = "method" Designator "{" { AttributeAssignment | IdAssignment | 
 +                                   OffsetAssignment } "}" .
 +Memorysector                     = "memorysector" Designator "{" ([BaseAssigment] 
 +                                   [SectorSizeAssignment])"}".
 +MemorysectorArray                = "memorysectorarray" Designator "{"  SectorSizeAssignment BaseAssigment 
 +                                   NofSectorAssignment "}" .
 +
 +VersionAssigment                 = "version" AssignOp String EndToken .
 +FileDescAssigment                = "description" AssignOp String EndToken .
 +ImportAssigment                  = "import" AssignOp StringEnum EndToken .
 +
 +VarAssigment                     = Designator AssignOp Expression  EndToken .
 +RootClassAssignments             = "rootClasses" AssignOp StringEnum EndToken .
 +LibPathAssignment                = "libpath" AssignOp StringEnum EndToken .
 +DebugLevelAssignment             = "debugLevel" AssignOp IntNumber EndToken .
 +PrintLevelAssignment             = "printlevel" AssignOp IntNumber EndToken .
 +
 +AttributeAssigment               = "attributes" AssignOp AttributeEnum EndToken .
 +BaseAssigment                    = "base" AssignOp Expression EndToken .
 +WidthAssigment                   = "width" AssignOp Expression  EndToken .
 +SizeAssigment                    = "size" AssignOp Expression EndToken .
 +TechnologyAssignment             = "technology" AssignOp Technology EndToken .
 +
 +MemorytypeAssignment             = "memorytype" AssignOp String EndToken .
 +ModuleAssignment = (SystemModules | ConcatenatedDesignator ){EnumSeparator (SystemModules 
 +                                   | ConcatenatedDesignator ) }  ":" ContentAttribute "@" 
 +                                   SegmentDesignator {EnumSeparator ContentAttribute "@" SegmentDesignator} EndToken .
 +SegmentSizeAssignment            = "segmentsize" AssingOp Expression EndToken .
 +ArraySizeAssignment              = "arraysize" AssignOp Expression EndToken . 
 +NofSegmentAssignment             = "nofsegments" AssignOp Expression EndToken .
 +TypeAssignment                   = "type" AssignOp Type EndToken .
 +AddressAssignment                = "addr" AssignOp Expression EndToken .
 +RegisterRepresentationAssignment = "repr" AssignOp RegisterRep EndToken . 
 +ClassAssignment                  = "class" AssignOp String EndToken . 
 +IdAssignment = "id" AssignOp Expression EndToken .
 +OffsetAssignment = "offset" AssignOp Expression EndToken .
 +SectorSizeAssignment = "sectorsize" AssignOp Expression EndToken .
 +NofSectorAssignment              = "nofsectors" AssignOp Expression EndToken .
 +
 +AttributeEnum                    = Attribute { EnumSeparator Attribute } .
 +StringEnum                       = String { EnumSeparator String } .
 +SegmentDesignator                = Designator { "." Designator }  .
 +ConcatenatedDesignator           = Designator { ("." | "/") Designator } [".*" | "/*"] .
 +
 +Designator                       = Letter {Letter | Digit} .
 +String                           = '"' {any character except " } '"'.
 +Letter                           = a...z | A...Z | "_" | "<" | ">" .
 +
 +Expression                       = Term { ( "+" | "-" ) Term } .
 +Term                             = Factor { ( "*" | "/" ) Factor } .
 +Factor                           = IntNumber | "(" Expression ")" | Designator .
 +
 +Attribute                        = ContentAttribute | MethodAttribute | "read" | "write" .
 +ContentAttribute                 = "const" | "code" | "var" | "heap" | "stack" | "systab" .
 +MethodAttribute                  = "new" | "NEW" | "unsafe" | "UNSAFE" | "synthetic" | "SYNTEHTIC" | "exchnd" | "EXCHND" .
 +
 +Type = RegisterType | SpezialRegisterType .
 +RegisterType                     = "GPR" | "FPR" | "SPR" | "IOR"| "gpr" | "fpr" | "spr" | "ior".
 +SpezialRegisterType              = "CR" | "MSR" | "FPSCR" .
 +
 +RegisterRep                      = "hex" | "dez" | "bin" | "Hex" | "Dez" | "Bin" .
 +SystemModules                    = "kernel" | "exceptions" | "heap" | "default" | "systemtable" .
 +Technology                       = "RAM" | "FLASH" .
 +
 +EnumSeparator                    = "," .
 +AssignOp                         = "=" .
 +EndToken                         = ";" .
 +
 +Digit                            = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" .
 +HexDigit                         = Digit | "a" | "b" | "c" | "d" | "e" | "f" | "A" | "B" | "C" | "D" | "E" | "F" .
 +IntNumber                        = ( Digit {Digit} ) | ( "0" ( "x" | "X") HexDigit {HexDigit} ) .
 +</code>
dev/configuration_syntax.txt · Last modified: 2016/02/25 13:33 by 127.0.0.1