deep

a Cross Development Platform for Java

User Tools

Site Tools


dev:configuration_syntax

Differences

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

Link to this comparison view

dev:configuration_syntax [2016/02/25 13:33] (current)
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 (external edit)