Changeset 68


Ignore:
Timestamp:
11/23/06 15:52:57 (5 years ago)
Author:
gnue
Message:

source code file encoding changed from Japanese(Mac OS) to UTF-8.

Location:
NEWT0/trunk
Files:
53 edited

Legend:

Unmodified
Added
Removed
  • NEWT0/trunk/contrib/contrib.xcodeproj/project.pbxproj

    r65 r68  
    9696        DAE3D4630A42AE3A00FE1B1F /* objc-runtime-x.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "objc-runtime-x.dylib"; sourceTree = BUILT_PRODUCTS_DIR; }; 
    9797        DAE3D49D0A42B03300FE1B1F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; }; 
    98         F53BCC700670CDF00013103E /* NewtIO.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtIO.h; sourceTree = "<group>"; }; 
    99         F541CF5107D8582D0071DCE6 /* Newton.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = Newton.h; sourceTree = "<group>"; }; 
    100         F5547416088A7486001E9DDF /* NewtIconv.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtIconv.h; sourceTree = "<group>"; }; 
    101         F55860F907E09F800080D223 /* NewtPrint.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtPrint.h; sourceTree = "<group>"; }; 
    102         F55A5AF70726499E002A520F /* NewtLib.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtLib.h; sourceTree = "<group>"; }; 
    103         F5622ED907E0273B009AAF9A /* Objects.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = Objects.h; sourceTree = "<group>"; }; 
    104         F5622F2307E029FC009AAF9A /* NewtonMemory.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtonMemory.h; sourceTree = "<group>"; }; 
    105         F5622F2407E029FC009AAF9A /* NewtonExceptions.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtonExceptions.h; sourceTree = "<group>"; }; 
    106         F57E7A0C07FD362400256511 /* NewtNSOF.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtNSOF.h; sourceTree = "<group>"; }; 
    107         F5ACB05306412D4900DB6CF9 /* NewtBC.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtBC.h; sourceTree = "<group>"; }; 
    108         F5ACB05406412D4900DB6CF9 /* NewtConf.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtConf.h; sourceTree = "<group>"; }; 
    109         F5ACB05506412D4900DB6CF9 /* NewtCore.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtCore.h; sourceTree = "<group>"; }; 
    110         F5ACB05606412D4900DB6CF9 /* NewtEnv.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtEnv.h; sourceTree = "<group>"; }; 
    111         F5ACB05706412D4900DB6CF9 /* NewtErrs.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtErrs.h; sourceTree = "<group>"; }; 
    112         F5ACB05806412D4900DB6CF9 /* NewtFile.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtFile.h; sourceTree = "<group>"; }; 
    113         F5ACB05906412D4900DB6CF9 /* NewtFns.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtFns.h; sourceTree = "<group>"; }; 
    114         F5ACB05A06412D4900DB6CF9 /* NewtGC.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtGC.h; sourceTree = "<group>"; }; 
    115         F5ACB05B06412D4900DB6CF9 /* NewtMem.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtMem.h; sourceTree = "<group>"; }; 
    116         F5ACB05C06412D4900DB6CF9 /* NewtObj.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtObj.h; sourceTree = "<group>"; }; 
    117         F5ACB05D06412D4900DB6CF9 /* NewtParser.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtParser.h; sourceTree = "<group>"; }; 
    118         F5ACB05E06412D4900DB6CF9 /* NewtStr.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtStr.h; sourceTree = "<group>"; }; 
    119         F5ACB05F06412D4900DB6CF9 /* NewtType.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtType.h; sourceTree = "<group>"; }; 
    120         F5ACB06006412D4900DB6CF9 /* NewtVM.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtVM.h; sourceTree = "<group>"; }; 
    121         F5DE1345082AD4A500BB42A5 /* config.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; }; 
     98        F53BCC700670CDF00013103E /* NewtIO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtIO.h; sourceTree = "<group>"; }; 
     99        F541CF5107D8582D0071DCE6 /* Newton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Newton.h; sourceTree = "<group>"; }; 
     100        F5547416088A7486001E9DDF /* NewtIconv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtIconv.h; sourceTree = "<group>"; }; 
     101        F55860F907E09F800080D223 /* NewtPrint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtPrint.h; sourceTree = "<group>"; }; 
     102        F55A5AF70726499E002A520F /* NewtLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtLib.h; sourceTree = "<group>"; }; 
     103        F5622ED907E0273B009AAF9A /* Objects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Objects.h; sourceTree = "<group>"; }; 
     104        F5622F2307E029FC009AAF9A /* NewtonMemory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtonMemory.h; sourceTree = "<group>"; }; 
     105        F5622F2407E029FC009AAF9A /* NewtonExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtonExceptions.h; sourceTree = "<group>"; }; 
     106        F57E7A0C07FD362400256511 /* NewtNSOF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtNSOF.h; sourceTree = "<group>"; }; 
     107        F5ACB05306412D4900DB6CF9 /* NewtBC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtBC.h; sourceTree = "<group>"; }; 
     108        F5ACB05406412D4900DB6CF9 /* NewtConf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtConf.h; sourceTree = "<group>"; }; 
     109        F5ACB05506412D4900DB6CF9 /* NewtCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtCore.h; sourceTree = "<group>"; }; 
     110        F5ACB05606412D4900DB6CF9 /* NewtEnv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtEnv.h; sourceTree = "<group>"; }; 
     111        F5ACB05706412D4900DB6CF9 /* NewtErrs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtErrs.h; sourceTree = "<group>"; }; 
     112        F5ACB05806412D4900DB6CF9 /* NewtFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtFile.h; sourceTree = "<group>"; }; 
     113        F5ACB05906412D4900DB6CF9 /* NewtFns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtFns.h; sourceTree = "<group>"; }; 
     114        F5ACB05A06412D4900DB6CF9 /* NewtGC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtGC.h; sourceTree = "<group>"; }; 
     115        F5ACB05B06412D4900DB6CF9 /* NewtMem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtMem.h; sourceTree = "<group>"; }; 
     116        F5ACB05C06412D4900DB6CF9 /* NewtObj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtObj.h; sourceTree = "<group>"; }; 
     117        F5ACB05D06412D4900DB6CF9 /* NewtParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtParser.h; sourceTree = "<group>"; }; 
     118        F5ACB05E06412D4900DB6CF9 /* NewtStr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtStr.h; sourceTree = "<group>"; }; 
     119        F5ACB05F06412D4900DB6CF9 /* NewtType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtType.h; sourceTree = "<group>"; }; 
     120        F5ACB06006412D4900DB6CF9 /* NewtVM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtVM.h; sourceTree = "<group>"; }; 
     121        F5DE1345082AD4A500BB42A5 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; }; 
    122122        F5F69C0107E8F36E0086BCEA /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = "<group>"; }; 
    123123/* End PBXFileReference section */ 
  • NEWT0/trunk/ext/ext.xcodeproj/project.pbxproj

    r65 r68  
    4545 
    4646/* Begin PBXFileReference section */ 
    47         DAE3D27C0A429BA300FE1B1F /* protoFILE.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = protoFILE.c; sourceTree = "<group>"; }; 
    48         DAE3D27E0A429BA300FE1B1F /* protoREGEX.c */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.c; path = protoREGEX.c; sourceTree = "<group>"; }; 
    49         F53BCC700670CDF00013103E /* NewtIO.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtIO.h; sourceTree = "<group>"; }; 
    50         F541CF5107D8582D0071DCE6 /* Newton.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = Newton.h; sourceTree = "<group>"; }; 
    51         F5547416088A7486001E9DDF /* NewtIconv.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtIconv.h; sourceTree = "<group>"; }; 
    52         F55860F907E09F800080D223 /* NewtPrint.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtPrint.h; sourceTree = "<group>"; }; 
    53         F55A5AF70726499E002A520F /* NewtLib.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtLib.h; sourceTree = "<group>"; }; 
    54         F5622ED907E0273B009AAF9A /* Objects.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = Objects.h; sourceTree = "<group>"; }; 
    55         F5622F2307E029FC009AAF9A /* NewtonMemory.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtonMemory.h; sourceTree = "<group>"; }; 
    56         F5622F2407E029FC009AAF9A /* NewtonExceptions.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtonExceptions.h; sourceTree = "<group>"; }; 
    57         F57E7A0C07FD362400256511 /* NewtNSOF.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtNSOF.h; sourceTree = "<group>"; }; 
    58         F5ACB05306412D4900DB6CF9 /* NewtBC.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtBC.h; sourceTree = "<group>"; }; 
    59         F5ACB05406412D4900DB6CF9 /* NewtConf.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtConf.h; sourceTree = "<group>"; }; 
    60         F5ACB05506412D4900DB6CF9 /* NewtCore.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtCore.h; sourceTree = "<group>"; }; 
    61         F5ACB05606412D4900DB6CF9 /* NewtEnv.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtEnv.h; sourceTree = "<group>"; }; 
    62         F5ACB05706412D4900DB6CF9 /* NewtErrs.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtErrs.h; sourceTree = "<group>"; }; 
    63         F5ACB05806412D4900DB6CF9 /* NewtFile.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtFile.h; sourceTree = "<group>"; }; 
    64         F5ACB05906412D4900DB6CF9 /* NewtFns.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtFns.h; sourceTree = "<group>"; }; 
    65         F5ACB05A06412D4900DB6CF9 /* NewtGC.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtGC.h; sourceTree = "<group>"; }; 
    66         F5ACB05B06412D4900DB6CF9 /* NewtMem.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtMem.h; sourceTree = "<group>"; }; 
    67         F5ACB05C06412D4900DB6CF9 /* NewtObj.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtObj.h; sourceTree = "<group>"; }; 
    68         F5ACB05D06412D4900DB6CF9 /* NewtParser.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtParser.h; sourceTree = "<group>"; }; 
    69         F5ACB05E06412D4900DB6CF9 /* NewtStr.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtStr.h; sourceTree = "<group>"; }; 
    70         F5ACB05F06412D4900DB6CF9 /* NewtType.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtType.h; sourceTree = "<group>"; }; 
    71         F5ACB06006412D4900DB6CF9 /* NewtVM.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtVM.h; sourceTree = "<group>"; }; 
     47        DAE3D27C0A429BA300FE1B1F /* protoFILE.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = protoFILE.c; sourceTree = "<group>"; }; 
     48        DAE3D27E0A429BA300FE1B1F /* protoREGEX.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = protoREGEX.c; sourceTree = "<group>"; }; 
     49        F53BCC700670CDF00013103E /* NewtIO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtIO.h; sourceTree = "<group>"; }; 
     50        F541CF5107D8582D0071DCE6 /* Newton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Newton.h; sourceTree = "<group>"; }; 
     51        F5547416088A7486001E9DDF /* NewtIconv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtIconv.h; sourceTree = "<group>"; }; 
     52        F55860F907E09F800080D223 /* NewtPrint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtPrint.h; sourceTree = "<group>"; }; 
     53        F55A5AF70726499E002A520F /* NewtLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtLib.h; sourceTree = "<group>"; }; 
     54        F5622ED907E0273B009AAF9A /* Objects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Objects.h; sourceTree = "<group>"; }; 
     55        F5622F2307E029FC009AAF9A /* NewtonMemory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtonMemory.h; sourceTree = "<group>"; }; 
     56        F5622F2407E029FC009AAF9A /* NewtonExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtonExceptions.h; sourceTree = "<group>"; }; 
     57        F57E7A0C07FD362400256511 /* NewtNSOF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtNSOF.h; sourceTree = "<group>"; }; 
     58        F5ACB05306412D4900DB6CF9 /* NewtBC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtBC.h; sourceTree = "<group>"; }; 
     59        F5ACB05406412D4900DB6CF9 /* NewtConf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtConf.h; sourceTree = "<group>"; }; 
     60        F5ACB05506412D4900DB6CF9 /* NewtCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtCore.h; sourceTree = "<group>"; }; 
     61        F5ACB05606412D4900DB6CF9 /* NewtEnv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtEnv.h; sourceTree = "<group>"; }; 
     62        F5ACB05706412D4900DB6CF9 /* NewtErrs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtErrs.h; sourceTree = "<group>"; }; 
     63        F5ACB05806412D4900DB6CF9 /* NewtFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtFile.h; sourceTree = "<group>"; }; 
     64        F5ACB05906412D4900DB6CF9 /* NewtFns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtFns.h; sourceTree = "<group>"; }; 
     65        F5ACB05A06412D4900DB6CF9 /* NewtGC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtGC.h; sourceTree = "<group>"; }; 
     66        F5ACB05B06412D4900DB6CF9 /* NewtMem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtMem.h; sourceTree = "<group>"; }; 
     67        F5ACB05C06412D4900DB6CF9 /* NewtObj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtObj.h; sourceTree = "<group>"; }; 
     68        F5ACB05D06412D4900DB6CF9 /* NewtParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtParser.h; sourceTree = "<group>"; }; 
     69        F5ACB05E06412D4900DB6CF9 /* NewtStr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtStr.h; sourceTree = "<group>"; }; 
     70        F5ACB05F06412D4900DB6CF9 /* NewtType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtType.h; sourceTree = "<group>"; }; 
     71        F5ACB06006412D4900DB6CF9 /* NewtVM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtVM.h; sourceTree = "<group>"; }; 
    7272        F5D8909F0A454544004C7582 /* protoREGEX.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = protoREGEX.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; 
    7373        F5D890A90A454575004C7582 /* protoFILE.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = protoFILE.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; 
    74         F5DE1345082AD4A500BB42A5 /* config.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; }; 
     74        F5DE1345082AD4A500BB42A5 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; }; 
    7575        F5F69C0107E8F36E0086BCEA /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = "<group>"; }; 
    7676/* End PBXFileReference section */ 
  • NEWT0/trunk/ext/protoFILE/protoFILE.c

    r53 r68  
    22/** 
    33 * @file  protoFILE.c 
    4  * @brief Šg’£ƒ‰ƒCƒuƒ‰ƒŠ 
     4 * @brief 拡張ライブラリ 
    55 * 
    66 * @author M.Nukui 
     
    1111 
    1212 
    13 /* ƒwƒbƒ_ƒtƒ@ƒCƒ‹ */ 
     13/* ヘッダファイル */ 
    1414#include <stdio.h> 
    1515 
     
    2222 
    2323 
    24 #define NewtRefToFILE(r)        ((FILE *)NewtRefToAddress(r))   ///< ƒIƒuƒWƒFƒNƒgŽQÆ‚ðƒtƒ@ƒCƒ‹ŽQÆ‚ɕϊ· 
     24#define NewtRefToFILE(r)        ((FILE *)NewtRefToAddress(r))   ///< オブジェクト参照をファイル参照に変換 
    2525 
    2626 
    2727/*------------------------------------------------------------------------*/ 
    28 /** ƒtƒ@ƒCƒ‹‚ðƒI[ƒvƒ“‚·‚é 
    29  * 
    30  * @param rcvr      [in] ƒŒƒV[ƒo 
    31  * @param path      [in] ƒpƒX 
    32  * @param mode      [in] ƒI[ƒvƒ“ƒ‚[ƒh 
    33  * 
    34  * @return          ƒtƒ@ƒCƒ‹ŽQÆ 
     28/** ファイルをオープンする 
     29 * 
     30 * @param rcvr      [in] レシーバ 
     31 * @param path      [in] パス 
     32 * @param mode      [in] オープンモード 
     33 * 
     34 * @return          ファイル参照 
    3535 */ 
    3636 
     
    5555 
    5656/*------------------------------------------------------------------------*/ 
    57 /** ƒtƒ@ƒCƒ‹‚ðƒNƒ[ƒY‚·‚é 
    58  * 
    59  * @param rcvr      [in] ƒŒƒV[ƒo 
    60  * @param stream    [in] ƒtƒ@ƒCƒ‹ŽQÆ 
    61  * 
    62  * @return          ƒGƒ‰[ƒR[ƒh 
     57/** ファイルをクローズする 
     58 * 
     59 * @param rcvr      [in] レシーバ 
     60 * @param stream    [in] ファイル参照 
     61 * 
     62 * @return          エラーコード 
    6363 */ 
    6464 
     
    448448 
    449449/*------------------------------------------------------------------------*/ 
    450 /** Šg’£ƒ‰ƒCƒuƒ‰ƒŠ‚̃Cƒ“ƒXƒg[ƒ‹ 
    451  * 
    452  * @return          ‚È‚µ 
     450/** 拡張ライブラリのインストール 
     451 * 
     452 * @return          なし 
    453453 */ 
    454454 
  • NEWT0/trunk/ext/protoREGEX/protoREGEX.c

    r1 r68  
    22/** 
    33 * @file  protoREGEX.c 
    4  * @brief Šg’£ƒ‰ƒCƒuƒ‰ƒŠ 
     4 * @brief 拡張ライブラリ 
    55 * 
    66 * @author M.Nukui 
     
    1111 
    1212 
    13 /* ƒwƒbƒ_ƒtƒ@ƒCƒ‹ */ 
     13/* ヘッダファイル */ 
    1414#include <stdio.h> 
    1515#include <sys/types.h> 
     
    205205 
    206206/*------------------------------------------------------------------------*/ 
    207 /** Šg’£ƒ‰ƒCƒuƒ‰ƒŠ‚̃Cƒ“ƒXƒg[ƒ‹ 
     207/** 拡張ライブラリのインストール 
    208208 * 
    209  * @return          ‚È‚µ 
     209 * @return          なし 
    210210 */ 
    211211 
  • NEWT0/trunk/src/main.c

    r56 r68  
    22/** 
    33 * @file    main.c 
    4  * @brief   ƒƒCƒ“ŠÖ”iCUI ƒRƒ}ƒ“ƒhj 
     4 * @brief   メイン関数(CUI コマンド) 
    55 * 
    66 * @author  M.Nukui 
     
    1111 
    1212 
    13 /* ƒwƒbƒ_ƒtƒ@ƒCƒ‹ */ 
     13/* ヘッダファイル */ 
    1414#include <stdio.h> 
    1515#include <stdlib.h> 
     
    2626 
    2727 
    28 /* ’萔 */ 
    29  
    30 /// ƒIƒvƒVƒ‡ƒ“ 
     28/* 定数 */ 
     29 
     30/// オプション 
    3131enum { 
    3232    optNone         = 0, 
     
    3838 
    3939 
    40 /* ƒ[ƒJƒ‹•ϐ” */ 
    41  
    42 /// ƒIƒvƒVƒ‡ƒ“ƒL[ƒ[ƒh‚̃‹ƒbƒNƒAƒbƒvƒe[ƒuƒ‹ 
     40/* ローカル変数 */ 
     41 
     42/// オプションキーワードのルックアップテーブル 
    4343static keyword_t    reserved_words[] = { 
    44         // ƒAƒ‹ƒtƒ@ƒxƒbƒg‡‚Ƀ\[ƒg‚µ‚Ä‚¨‚­‚±‚Æ 
     44        // アルファベット順にソートしておくこと 
    4545        {"copyright",   optCopyright}, 
    4646        {"newton",      optNos2}, 
     
    5151 
    5252 
    53 /// ì‹ÆƒfƒBƒŒƒNƒgƒŠ 
     53/// 作業ディレクトリ 
    5454static const char *     newt_currdir; 
    5555 
    5656 
    57 /* ŠÖ”ƒvƒƒgƒ^ƒCƒv */ 
     57/* 関数プロトタイプ */ 
    5858#ifdef __cplusplus 
    5959extern "C" { 
     
    9090#pragma mark - 
    9191/*------------------------------------------------------------------------*/ 
    92 /** Œ‹‰Ê‚ð•\ަ 
    93  * 
    94  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    95  * @param err       [in] ƒGƒ‰[ƒR[ƒh 
    96  * 
    97  * @return          ‚È‚µ 
     92/** 結果を表示 
     93 * 
     94 * @param r         [in] オブジェクト 
     95 * @param err       [in] エラーコード 
     96 * 
     97 * @return          なし 
    9898 */ 
    9999 
     
    109109#pragma mark - 
    110110/*------------------------------------------------------------------------*/ 
    111 /** ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚ÅŽw’肳‚ꂽŠÖ”‚̏î•ñ‚ð•\ަ 
    112  * 
    113  * @param argc      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̐” 
    114  * @param argv      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚Ì”z—ñ 
    115  * @param n         [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̈ʒu 
    116  * 
    117  * @return          ƒGƒ‰[ƒR[ƒh 
     111/** コマンドライン引数で指定された関数の情報を表示 
     112 * 
     113 * @param argc      [in] コマンドライン引数の数 
     114 * @param argv      [in] コマンドライン引数の配列 
     115 * @param n         [in] コマンドライン引数の位置 
     116 * 
     117 * @return          エラーコード 
    118118 */ 
    119119 
     
    135135    } 
    136136    else 
    137     {   //ˆø”‚ª‚È‚¢ê‡‚͊֐”ˆê——‚ð•\ަ 
     137    {   //引数がない場合は関数一覧を表示 
    138138        err = NVMInfo(NULL); 
    139139        NewtErrMessage(err); 
     
    147147 
    148148/*------------------------------------------------------------------------*/ 
    149 /** ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚ÅŽw’肳‚ꂽ•¶Žš—ñ‚ðƒCƒ“ƒ^ƒvƒŠƒ^ŽÀs‚·‚é 
    150  * 
    151  * @param argc      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̐” 
    152  * @param argv      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚Ì”z—ñ 
    153  * @param n         [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̈ʒu 
    154  * 
    155  * @return          ƒGƒ‰[ƒR[ƒh 
     149/** コマンドライン引数で指定された文字列をインタプリタ実行する 
     150 * 
     151 * @param argc      [in] コマンドライン引数の数 
     152 * @param argv      [in] コマンドライン引数の配列 
     153 * @param n         [in] コマンドライン引数の位置 
     154 * 
     155 * @return          エラーコード 
    156156 */ 
    157157 
     
    172172 
    173173/*------------------------------------------------------------------------*/ 
    174 /** ƒtƒ@ƒCƒ‹‚ðƒCƒ“ƒ^ƒvƒŠƒ^ŽÀs‚·‚é 
    175  * 
    176  * @param argc      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̐” 
    177  * @param argv      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚Ì”z—ñ 
    178  * @param n         [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̈ʒu 
    179  * 
    180  * @return          ƒGƒ‰[ƒR[ƒh 
     174/** ファイルをインタプリタ実行する 
     175 * 
     176 * @param argc      [in] コマンドライン引数の数 
     177 * @param argv      [in] コマンドライン引数の配列 
     178 * @param n         [in] コマンドライン引数の位置 
     179 * 
     180 * @return          エラーコード 
    181181 */ 
    182182 
     
    205205#pragma mark - 
    206206/*------------------------------------------------------------------------*/ 
    207 /** ì‹ÆƒfƒBƒŒƒNƒgƒŠ‚ð•ύX */ 
     207/** 作業ディレクトリを変更 */ 
    208208void newt_chdir(void) 
    209209{ 
     
    217217#pragma mark - 
    218218/*------------------------------------------------------------------------*/ 
    219 /** ƒRƒs[ƒ‰ƒCƒg‚ð•\ަ */ 
     219/** コピーライトを表示 */ 
    220220void newt_show_copyright(void) 
    221221{ 
     
    224224 
    225225 
    226 /** ƒo[ƒWƒ‡ƒ“î•ñ‚ð•\ަ */ 
     226/** バージョン情報を表示 */ 
    227227void newt_show_version(void) 
    228228{ 
     
    232232 
    233233 
    234 /** ƒXƒ^ƒbƒtî•ñ‚ð•\ަ */ 
     234/** スタッフ情報を表示 */ 
    235235void newt_show_staff(void) 
    236236{ 
     
    240240 
    241241 
    242 /** Žg—p–@‚ð•\ަ */ 
     242/** 使用法を表示 */ 
    243243void newt_show_usage(void) 
    244244{ 
     
    249249#pragma mark - 
    250250/*------------------------------------------------------------------------*/ 
    251 /** ƒIƒvƒVƒ‡ƒ“ƒGƒ‰[‚ð•\ަ 
    252  * 
    253  * @param c         [in] ƒIƒvƒVƒ‡ƒ“•¶Žš 
    254  * 
    255  * @return          ‚È‚µ 
     251/** オプションエラーを表示 
     252 * 
     253 * @param c         [in] オプション文字 
     254 * 
     255 * @return          なし 
    256256 */ 
    257257 
     
    263263 
    264264/*------------------------------------------------------------------------*/ 
    265 /** ƒIƒvƒVƒ‡ƒ“ƒXƒCƒbƒ`‚̉ðÍ 
    266  * 
    267  * @param s         [in] ƒIƒvƒVƒ‡ƒ“ƒXƒCƒbƒ` 
    268  * 
    269  * @return          ‚È‚µ 
     265/** オプションスイッチの解析 
     266 * 
     267 * @param s         [in] オプションスイッチ 
     268 * 
     269 * @return          なし 
    270270 */ 
    271271 
     
    318318 
    319319/*------------------------------------------------------------------------*/ 
    320 /** ƒIƒvƒVƒ‡ƒ“•¶Žš—ñ‚̉ðÍ 
    321  * 
    322  * @param s         [in] ƒIƒvƒVƒ‡ƒ“•¶Žš—ñ 
    323  * 
    324  * @return          ‚È‚µ 
     320/** オプション文字列の解析 
     321 * 
     322 * @param s         [in] オプション文字列 
     323 * 
     324 * @return          なし 
    325325 */ 
    326326 
     
    333333    switch (lookup_words(reserved_words, wlen, s)) 
    334334    { 
    335         // NOS2 ƒRƒ“ƒpƒ`ƒuƒ‹ 
     335        // NOS2 コンパチブル 
    336336        case optNos2: 
    337337            NEWT_MODE_NOS2 = true; 
    338338            break; 
    339339 
    340         // ƒRƒs[ƒ‰ƒCƒg 
     340        // コピーライト 
    341341        case optCopyright: 
    342342            newt_show_copyright(); 
     
    344344            break; 
    345345 
    346         // ƒo[ƒWƒ‡ƒ“ 
     346        // バージョン 
    347347        case optVersion: 
    348348            newt_show_version(); 
     
    350350            break; 
    351351 
    352         // ƒXƒ^ƒbƒtƒ[ƒ‹ 
     352        // スタッフロール 
    353353        case optStaff: 
    354354            newt_show_staff(); 
     
    360360 
    361361/*------------------------------------------------------------------------*/ 
    362 /** ƒIƒvƒVƒ‡ƒ“‚̈ø”‚ð‰ðÍ‚·‚é 
    363  * 
    364  * @param c         [in] ƒIƒvƒVƒ‡ƒ“•¶Žš 
    365  * @param argc      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̐” 
    366  * @param argv      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚Ì”z—ñ 
    367  * @param n         [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̈ʒu 
    368  * 
    369  * @return          ƒGƒ‰[ƒR[ƒh 
     362/** オプションの引数を解析する 
     363 * 
     364 * @param c         [in] オプション文字 
     365 * @param argc      [in] コマンドライン引数の数 
     366 * @param argv      [in] コマンドライン引数の配列 
     367 * @param n         [in] コマンドライン引数の位置 
     368 * 
     369 * @return          エラーコード 
    370370 */ 
    371371 
     
    392392#pragma mark - 
    393393/*------------------------------------------------------------------------*/ 
    394 /** main ŠÖ”iCUI ƒRƒ}ƒ“ƒh) 
    395  * 
    396  * @brief NewtonScript ƒCƒ“ƒ^ƒvƒŠƒ^ 
    397  * 
    398  * @param argc      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̐” 
    399  * @param argv      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚Ì”z—ñ 
    400  * 
    401  * @return          ƒGƒ‰[ƒR[ƒh 
     394/** main 関数(CUI コマンド) 
     395 * 
     396 * @brief NewtonScript インタプリタ 
     397 * 
     398 * @param argc      [in] コマンドライン引数の数 
     399 * @param argv      [in] コマンドライン引数の配列 
     400 * 
     401 * @return          エラーコード 
    402402 */ 
    403403 
     
    451451 
    452452/*------------------------------------------------------------------------*/ 
    453 /** ƒp[ƒTƒGƒ‰[ 
    454  * 
    455  * @param s         [in] ƒGƒ‰[ƒƒbƒZ[ƒW•¶Žš—ñ 
    456  * 
    457  * @return          ‚È‚µ 
     453/** パーサエラー 
     454 * 
     455 * @param s         [in] エラーメッセージ文字列 
     456 * 
     457 * @return          なし 
    458458 */ 
    459459 
  • NEWT0/trunk/src/newt.xcodeproj/project.pbxproj

    r66 r68  
    4242 
    4343/* Begin PBXFileReference section */ 
    44         8DD76FB20486AB0100D96B5E /* newt */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = "compiled.mach-o.executable"; path = newt; sourceTree = BUILT_PRODUCTS_DIR; }; 
    45         F503AC6A0851DFD9009BA497 /* endian_utils.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = endian_utils.c; sourceTree = "<group>"; }; 
    46         F503AC6B0851DFD9009BA497 /* endian_utils.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = endian_utils.h; sourceTree = "<group>"; }; 
     44        8DD76FB20486AB0100D96B5E /* newt */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = newt; sourceTree = BUILT_PRODUCTS_DIR; }; 
     45        F503AC6A0851DFD9009BA497 /* endian_utils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = endian_utils.c; sourceTree = "<group>"; }; 
     46        F503AC6B0851DFD9009BA497 /* endian_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = endian_utils.h; sourceTree = "<group>"; }; 
    4747        F52FA68B0594742F00087763 /* libl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libl.a; path = /usr/lib/libl.a; sourceTree = "<absolute>"; }; 
    48         F53BCC6C0670CDBD0013103E /* NewtIO.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = NewtIO.c; sourceTree = "<group>"; }; 
    49         F53BCC700670CDF00013103E /* NewtIO.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtIO.h; sourceTree = "<group>"; }; 
    50         F541CF5107D8582D0071DCE6 /* Newton.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = Newton.h; sourceTree = "<group>"; }; 
    51         F5547416088A7486001E9DDF /* NewtIconv.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtIconv.h; sourceTree = "<group>"; }; 
    52         F554741C088A750B001E9DDF /* NewtIconv.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = NewtIconv.c; sourceTree = "<group>"; }; 
    53         F55860F307E09F5F0080D223 /* NewtPrint.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = NewtPrint.c; sourceTree = "<group>"; }; 
    54         F55860F907E09F800080D223 /* NewtPrint.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtPrint.h; sourceTree = "<group>"; }; 
    55         F55A5AF70726499E002A520F /* NewtLib.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtLib.h; sourceTree = "<group>"; }; 
    56         F5622ED907E0273B009AAF9A /* Objects.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = Objects.h; sourceTree = "<group>"; }; 
    57         F5622F2307E029FC009AAF9A /* NewtonMemory.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtonMemory.h; sourceTree = "<group>"; }; 
    58         F5622F2407E029FC009AAF9A /* NewtonExceptions.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtonExceptions.h; sourceTree = "<group>"; }; 
    59         F57E7A0C07FD362400256511 /* NewtNSOF.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtNSOF.h; sourceTree = "<group>"; }; 
    60         F57E7A1307FD365100256511 /* NewtNSOF.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = NewtNSOF.c; sourceTree = "<group>"; }; 
    61         F5ACB05306412D4900DB6CF9 /* NewtBC.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtBC.h; sourceTree = "<group>"; }; 
    62         F5ACB05406412D4900DB6CF9 /* NewtConf.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtConf.h; sourceTree = "<group>"; }; 
    63         F5ACB05506412D4900DB6CF9 /* NewtCore.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtCore.h; sourceTree = "<group>"; }; 
    64         F5ACB05606412D4900DB6CF9 /* NewtEnv.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtEnv.h; sourceTree = "<group>"; }; 
    65         F5ACB05706412D4900DB6CF9 /* NewtErrs.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtErrs.h; sourceTree = "<group>"; }; 
    66         F5ACB05806412D4900DB6CF9 /* NewtFile.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtFile.h; sourceTree = "<group>"; }; 
    67         F5ACB05906412D4900DB6CF9 /* NewtFns.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtFns.h; sourceTree = "<group>"; }; 
    68         F5ACB05A06412D4900DB6CF9 /* NewtGC.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtGC.h; sourceTree = "<group>"; }; 
    69         F5ACB05B06412D4900DB6CF9 /* NewtMem.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtMem.h; sourceTree = "<group>"; }; 
    70         F5ACB05C06412D4900DB6CF9 /* NewtObj.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtObj.h; sourceTree = "<group>"; }; 
    71         F5ACB05D06412D4900DB6CF9 /* NewtParser.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtParser.h; sourceTree = "<group>"; }; 
    72         F5ACB05E06412D4900DB6CF9 /* NewtStr.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtStr.h; sourceTree = "<group>"; }; 
    73         F5ACB05F06412D4900DB6CF9 /* NewtType.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtType.h; sourceTree = "<group>"; }; 
    74         F5ACB06006412D4900DB6CF9 /* NewtVM.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = NewtVM.h; sourceTree = "<group>"; }; 
    75         F5ACB06106412D4900DB6CF9 /* NewtBC.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = NewtBC.c; sourceTree = "<group>"; }; 
    76         F5ACB06206412D4900DB6CF9 /* NewtEnv.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = NewtEnv.c; sourceTree = "<group>"; }; 
    77         F5ACB06306412D4900DB6CF9 /* NewtFile.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = NewtFile.c; sourceTree = "<group>"; }; 
    78         F5ACB06406412D4900DB6CF9 /* NewtFns.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = NewtFns.c; sourceTree = "<group>"; }; 
    79         F5ACB06506412D4900DB6CF9 /* NewtGC.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = NewtGC.c; sourceTree = "<group>"; }; 
    80         F5ACB06606412D4900DB6CF9 /* NewtMem.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = NewtMem.c; sourceTree = "<group>"; }; 
    81         F5ACB06706412D4900DB6CF9 /* NewtObj.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = NewtObj.c; sourceTree = "<group>"; }; 
    82         F5ACB06806412D4900DB6CF9 /* NewtParser.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = NewtParser.c; sourceTree = "<group>"; }; 
    83         F5ACB06906412D4900DB6CF9 /* NewtStr.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = NewtStr.c; sourceTree = "<group>"; }; 
    84         F5ACB06A06412D4900DB6CF9 /* NewtVM.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = NewtVM.c; sourceTree = "<group>"; }; 
    85         F5DE1345082AD4A500BB42A5 /* config.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; }; 
    86         F5E14ADA057984FA009742A2 /* main.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = "<group>"; }; 
    87         F5E14ADB057984FA009742A2 /* version.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = "<group>"; }; 
    88         F5E14B0905798559009742A2 /* lookup_words.c */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.c; path = lookup_words.c; sourceTree = "<group>"; }; 
    89         F5E14B0A05798559009742A2 /* lookup_words.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = lookup_words.h; sourceTree = "<group>"; }; 
    90         F5E14B0B05798559009742A2 /* newt.l */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.lex; path = newt.l; sourceTree = "<group>"; }; 
    91         F5E14B0C05798559009742A2 /* newt.y */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.yacc; path = newt.y; sourceTree = "<group>"; }; 
    92         F5E14B0D05798559009742A2 /* yacc.h */ = {isa = PBXFileReference; fileEncoding = "-2147483647"; lastKnownFileType = sourcecode.c.h; path = yacc.h; sourceTree = "<group>"; }; 
     48        F53BCC6C0670CDBD0013103E /* NewtIO.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NewtIO.c; sourceTree = "<group>"; }; 
     49        F53BCC700670CDF00013103E /* NewtIO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtIO.h; sourceTree = "<group>"; }; 
     50        F541CF5107D8582D0071DCE6 /* Newton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Newton.h; sourceTree = "<group>"; }; 
     51        F5547416088A7486001E9DDF /* NewtIconv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtIconv.h; sourceTree = "<group>"; }; 
     52        F554741C088A750B001E9DDF /* NewtIconv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NewtIconv.c; sourceTree = "<group>"; }; 
     53        F55860F307E09F5F0080D223 /* NewtPrint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NewtPrint.c; sourceTree = "<group>"; }; 
     54        F55860F907E09F800080D223 /* NewtPrint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtPrint.h; sourceTree = "<group>"; }; 
     55        F55A5AF70726499E002A520F /* NewtLib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtLib.h; sourceTree = "<group>"; }; 
     56        F5622ED907E0273B009AAF9A /* Objects.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Objects.h; sourceTree = "<group>"; }; 
     57        F5622F2307E029FC009AAF9A /* NewtonMemory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtonMemory.h; sourceTree = "<group>"; }; 
     58        F5622F2407E029FC009AAF9A /* NewtonExceptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtonExceptions.h; sourceTree = "<group>"; }; 
     59        F57E7A0C07FD362400256511 /* NewtNSOF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtNSOF.h; sourceTree = "<group>"; }; 
     60        F57E7A1307FD365100256511 /* NewtNSOF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NewtNSOF.c; sourceTree = "<group>"; }; 
     61        F5ACB05306412D4900DB6CF9 /* NewtBC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtBC.h; sourceTree = "<group>"; }; 
     62        F5ACB05406412D4900DB6CF9 /* NewtConf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtConf.h; sourceTree = "<group>"; }; 
     63        F5ACB05506412D4900DB6CF9 /* NewtCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtCore.h; sourceTree = "<group>"; }; 
     64        F5ACB05606412D4900DB6CF9 /* NewtEnv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtEnv.h; sourceTree = "<group>"; }; 
     65        F5ACB05706412D4900DB6CF9 /* NewtErrs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtErrs.h; sourceTree = "<group>"; }; 
     66        F5ACB05806412D4900DB6CF9 /* NewtFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtFile.h; sourceTree = "<group>"; }; 
     67        F5ACB05906412D4900DB6CF9 /* NewtFns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtFns.h; sourceTree = "<group>"; }; 
     68        F5ACB05A06412D4900DB6CF9 /* NewtGC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtGC.h; sourceTree = "<group>"; }; 
     69        F5ACB05B06412D4900DB6CF9 /* NewtMem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtMem.h; sourceTree = "<group>"; }; 
     70        F5ACB05C06412D4900DB6CF9 /* NewtObj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtObj.h; sourceTree = "<group>"; }; 
     71        F5ACB05D06412D4900DB6CF9 /* NewtParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtParser.h; sourceTree = "<group>"; }; 
     72        F5ACB05E06412D4900DB6CF9 /* NewtStr.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtStr.h; sourceTree = "<group>"; }; 
     73        F5ACB05F06412D4900DB6CF9 /* NewtType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtType.h; sourceTree = "<group>"; }; 
     74        F5ACB06006412D4900DB6CF9 /* NewtVM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewtVM.h; sourceTree = "<group>"; }; 
     75        F5ACB06106412D4900DB6CF9 /* NewtBC.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NewtBC.c; sourceTree = "<group>"; }; 
     76        F5ACB06206412D4900DB6CF9 /* NewtEnv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NewtEnv.c; sourceTree = "<group>"; }; 
     77        F5ACB06306412D4900DB6CF9 /* NewtFile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NewtFile.c; sourceTree = "<group>"; }; 
     78        F5ACB06406412D4900DB6CF9 /* NewtFns.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NewtFns.c; sourceTree = "<group>"; }; 
     79        F5ACB06506412D4900DB6CF9 /* NewtGC.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NewtGC.c; sourceTree = "<group>"; }; 
     80        F5ACB06606412D4900DB6CF9 /* NewtMem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NewtMem.c; sourceTree = "<group>"; }; 
     81        F5ACB06706412D4900DB6CF9 /* NewtObj.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NewtObj.c; sourceTree = "<group>"; }; 
     82        F5ACB06806412D4900DB6CF9 /* NewtParser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NewtParser.c; sourceTree = "<group>"; }; 
     83        F5ACB06906412D4900DB6CF9 /* NewtStr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NewtStr.c; sourceTree = "<group>"; }; 
     84        F5ACB06A06412D4900DB6CF9 /* NewtVM.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = NewtVM.c; sourceTree = "<group>"; }; 
     85        F5DE1345082AD4A500BB42A5 /* config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; }; 
     86        F5E14ADA057984FA009742A2 /* main.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = main.c; sourceTree = "<group>"; }; 
     87        F5E14ADB057984FA009742A2 /* version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = version.h; sourceTree = "<group>"; }; 
     88        F5E14B0905798559009742A2 /* lookup_words.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lookup_words.c; sourceTree = "<group>"; }; 
     89        F5E14B0A05798559009742A2 /* lookup_words.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lookup_words.h; sourceTree = "<group>"; }; 
     90        F5E14B0B05798559009742A2 /* newt.l */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.lex; path = newt.l; sourceTree = "<group>"; }; 
     91        F5E14B0C05798559009742A2 /* newt.y */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.yacc; path = newt.y; sourceTree = "<group>"; }; 
     92        F5E14B0D05798559009742A2 /* yacc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = yacc.h; sourceTree = "<group>"; }; 
    9393        F5F69C0107E8F36E0086BCEA /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = "<group>"; }; 
    9494/* End PBXFileReference section */ 
  • NEWT0/trunk/src/newt_core/NewtBC.c

    r56 r68  
    22/** 
    33 * @file    NewtBC.c 
    4  * @brief   ƒoƒCƒgƒR[ƒh‚̐¶¬ 
     4 * @brief   バイトコードの生成 
    55 * 
    66 * @author  M.Nukui 
     
    1111 
    1212 
    13 /* ƒwƒbƒ_ƒtƒ@ƒCƒ‹ */ 
     13/* ヘッダファイル */ 
    1414#include <stdio.h> 
    1515#include <stdlib.h> 
     
    2222 
    2323 
    24 /* Œ^éŒ¾ */ 
    25  
    26 /// ƒoƒCƒgƒR[ƒhŠÂ‹« 
     24/* 型宣言 */ 
     25 
     26/// バイトコード環境 
    2727typedef struct nbc_env_t    nbc_env_t; 
    2828 
    29 /// ƒoƒCƒgƒR[ƒhŠÂ‹«i\‘¢‘Ì’è‹`j 
     29/// バイトコード環境(構造体定義) 
    3030struct nbc_env_t { 
    31     nbc_env_t * parent;         ///< ŒÄo‚µŒ³ŠÂ‹« 
    32  
    33     newtStack   bytecode;       ///< ƒoƒCƒgƒR[ƒhƒoƒbƒtƒ@ 
    34     newtStack   breakstack;     ///< ƒuƒŒ[ƒNƒXƒ^ƒbƒN 
    35     newtStack   onexcpstack;    ///< —áŠOƒXƒ^ƒbƒN 
    36  
    37     newtRefVar  func;           ///< ŠÖ”ƒIƒuƒWƒFƒNƒg 
    38     newtRefVar  literals;       ///< ŠÖ”ƒIƒuƒWƒFƒNƒg‚ÌƒŠƒeƒ‰ƒ‹ƒtƒŒ[ƒ€ 
    39     newtRefVar  argFrame;       ///< ŠÖ”ƒIƒuƒWƒFƒNƒg‚̃tƒŒ[ƒ€ 
    40     newtRefVar  constant;       ///< ’萔ƒtƒŒ[ƒ€ 
     31    nbc_env_t * parent;         ///< 呼出し元環境 
     32 
     33    newtStack   bytecode;       ///< バイトコードバッファ 
     34    newtStack   breakstack;     ///< ブレークスタック 
     35    newtStack   onexcpstack;    ///< 例外スタック 
     36 
     37    newtRefVar  func;           ///< 関数オブジェクト 
     38    newtRefVar  literals;       ///< 関数オブジェクトのリテラルフレーム 
     39    newtRefVar  argFrame;       ///< 関数オブジェクトのフレーム 
     40    newtRefVar  constant;       ///< 定数フレーム 
    4141}; 
    4242 
    4343 
    44 /// ŠÖ”–½—߃e[ƒuƒ‹\‘¢‘Ì 
     44/// 関数命令テーブル構造体 
    4545typedef struct { 
    46     char *      name;       ///< ŠÖ”–¼ 
    47     int32_t     numArgs;    ///< ˆø”‚̐” 
    48     int16_t     b;          ///< ƒoƒCƒgƒR[ƒh 
    49     newtRefVar  sym;        ///< ƒVƒ“ƒ{ƒ‹ 
     46    char *      name;       ///< 関数名 
     47    int32_t     numArgs;    ///< 引数の数 
     48    int16_t     b;          ///< バイトコード 
     49    newtRefVar  sym;        ///< シンボル 
    5050} freq_func_t; 
    5151 
    5252 
    53 /* ŠÖ”ƒvƒƒgƒ^ƒCƒv */ 
    54 #define ENV_BC(env)             ((uint8_t*)env->bytecode.stackp)                ///< ƒoƒCƒgƒR[ƒh 
    55 #define ENV_CX(env)             (env->bytecode.sp)                              ///< ƒR[ƒhƒCƒ“ƒfƒbƒNƒXiƒvƒƒOƒ‰ƒ€ƒJƒEƒ“ƒ^j 
    56 #define BC                      ENV_BC(newt_bc_env)                             ///< ì¬’†‚̃oƒCƒgƒR[ƒh 
    57 #define CX                      ENV_CX(newt_bc_env)                             ///< ì¬’†‚̃R[ƒhƒCƒ“ƒfƒbƒNƒXiƒvƒƒOƒ‰ƒ€ƒJƒEƒ“ƒ^j 
    58 #define BREAKSTACK              ((uint32_t*)newt_bc_env->breakstack.stackp)     ///< ƒuƒŒ[ƒNƒXƒ^ƒbƒN 
    59 #define BREAKSP                 (newt_bc_env->breakstack.sp)                    ///< ƒuƒŒ[ƒNƒXƒ^ƒbƒN‚̃Xƒ^ƒbƒNƒ|ƒCƒ“ƒ^ 
    60 #define ONEXCPSTACK             ((uint32_t*)newt_bc_env->onexcpstack.stackp)    ///< —áŠOƒXƒ^ƒbƒN 
    61 #define ONEXCPSP                (newt_bc_env->onexcpstack.sp)                   ///< —áŠOƒXƒ^ƒbƒN‚̃Xƒ^ƒbƒNƒ|ƒCƒ“ƒ^ 
    62 #define LITERALS                (newt_bc_env->literals)                         ///< ì¬’†ŠÖ”ƒIƒuƒWƒFƒNƒg‚ÌƒŠƒeƒ‰ƒ‹ 
    63 #define ARGFRAME                (newt_bc_env->argFrame)                         ///< ì¬’†ŠÖ”ƒIƒuƒWƒFƒNƒg‚̈ø”ƒtƒŒ[ƒ€ 
    64 #define CONSTANT                (newt_bc_env->constant)                         ///< ’萔ƒtƒŒ[ƒ€ 
    65  
    66 #define NBCAddLiteral(r)        NBCAddLiteralEnv(newt_bc_env, r)                ///< ƒŠƒeƒ‰ƒ‹ƒŠƒXƒg‚ɃIƒuƒWƒFƒNƒg‚ð’ljÁ 
    67 #define NBCGenCode(a, b)        NBCGenCodeEnv(newt_bc_env, a, b)                ///< ƒoƒCƒgƒR[ƒh‚𐶐¬ 
    68 #define NBCGenCodeL(a, r)       NBCGenCodeEnvL(newt_bc_env, a, r)               ///< ƒŠƒeƒ‰ƒ‹‚ȃIƒyƒf[ƒ^‚̃oƒCƒgƒR[ƒh‚𐶐¬ 
    69 #define NBCGenPushLiteral(r)    NBCGenPushLiteralEnv(newt_bc_env, r)            ///< ƒŠƒeƒ‰ƒ‹‚ðƒvƒbƒVƒ 
    70 ‚·‚éƒoƒCƒgƒR[ƒh‚𐶐¬ 
    71  
    72 #define NBCGenBC_op(stree, r)   NBCGenBC_stmt(stree, r, true)                   ///< ˆø”‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    73 #define NBCGenFreq(b)           NBCGenCode(kNBCFreqFunc, b)                     ///< ŠÖ”–½—߂̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
     53/* 関数プロトタイプ */ 
     54#define ENV_BC(env)             ((uint8_t*)env->bytecode.stackp)                ///< バイトコード 
     55#define ENV_CX(env)             (env->bytecode.sp)                              ///< コードインデックス(プログラムカウンタ) 
     56#define BC                      ENV_BC(newt_bc_env)                             ///< 作成中のバイトコード 
     57#define CX                      ENV_CX(newt_bc_env)                             ///< 作成中のコードインデックス(プログラムカウンタ) 
     58#define BREAKSTACK              ((uint32_t*)newt_bc_env->breakstack.stackp)     ///< ブレークスタック 
     59#define BREAKSP                 (newt_bc_env->breakstack.sp)                    ///< ブレークスタックのスタックポインタ 
     60#define ONEXCPSTACK             ((uint32_t*)newt_bc_env->onexcpstack.stackp)    ///< 例外スタック 
     61#define ONEXCPSP                (newt_bc_env->onexcpstack.sp)                   ///< 例外スタックのスタックポインタ 
     62#define LITERALS                (newt_bc_env->literals)                         ///< 作成中関数オブジェクトのリテラル 
     63#define ARGFRAME                (newt_bc_env->argFrame)                         ///< 作成中関数オブジェクトの引数フレーム 
     64#define CONSTANT                (newt_bc_env->constant)                         ///< 定数フレーム 
     65 
     66#define NBCAddLiteral(r)        NBCAddLiteralEnv(newt_bc_env, r)                ///< リテラルリストにオブジェクトを追加 
     67#define NBCGenCode(a, b)        NBCGenCodeEnv(newt_bc_env, a, b)                ///< バイトコードを生成 
     68#define NBCGenCodeL(a, r)       NBCGenCodeEnvL(newt_bc_env, a, r)               ///< リテラルなオペデータのバイトコードを生成 
     69#define NBCGenPushLiteral(r)    NBCGenPushLiteralEnv(newt_bc_env, r)            ///< リテラルをプッシュするバイトコードを生成 
     70 
     71#define NBCGenBC_op(stree, r)   NBCGenBC_stmt(stree, r, true)                   ///< 引数のバイトコードを生成する 
     72#define NBCGenFreq(b)           NBCGenCode(kNBCFreqFunc, b)                     ///< 関数命令のバイトコードを生成する 
    7473 
    7574 
    7675#pragma mark - 
    77 #pragma mark ƒ[ƒJƒ‹•ϐ” 
    78 /* ƒ[ƒJƒ‹•ϐ” */ 
    79  
    80 /// ƒoƒCƒhƒR[ƒhŠÂ‹« 
     76#pragma mark ローカル変数 
     77/* ローカル変数 */ 
     78 
     79/// バイドコード環境 
    8180static nbc_env_t *  newt_bc_env; 
    8281 
    83 /// ŠÖ”–½—߃e[ƒuƒ‹ 
     82/// 関数命令テーブル 
    8483static freq_func_t freq_func_tb[] = 
    8584    { 
     
    102101 
    103102#pragma mark - 
    104 /* ŠÖ”ƒvƒƒgƒ^ƒCƒv */ 
     103/* 関数プロトタイプ */ 
    105104static int16_t          NBCAddLiteralEnv(nbc_env_t * env, newtRefArg r); 
    106105static void             NBCGenCodeEnv(nbc_env_t * env, uint8_t a, int16_t b); 
     
    176175#pragma mark - 
    177176/*------------------------------------------------------------------------*/ 
    178 /** ƒŠƒeƒ‰ƒ‹ƒŠƒXƒg‚ɃIƒuƒWƒFƒNƒg‚ð’ljÁ‚·‚é 
    179  * 
    180  * @param env       [in] ƒoƒCƒgƒR[ƒhŠÂ‹« 
    181  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    182  * 
    183  * @return          ’ljÁ‚³‚ꂽˆÊ’u 
     177/** リテラルリストにオブジェクトを追加する 
     178 * 
     179 * @param env       [in] バイトコード環境 
     180 * @param r         [in] オブジェクト 
     181 * 
     182 * @return          追加された位置 
    184183 */ 
    185184 
     
    196195 
    197196/*------------------------------------------------------------------------*/ 
    198 /** ƒoƒCƒgƒR[ƒh‚𐶐¬ 
    199  * 
    200  * @param env       [in] ƒoƒCƒgƒR[ƒhŠÂ‹« 
    201  * @param a         [in] –½—ß 
    202  * @param b         [in] ƒIƒyƒf[ƒ^ 
    203  * 
    204  * @return          ‚È‚µ 
     197/** バイトコードを生成 
     198 * 
     199 * @param env       [in] バイトコード環境 
     200 * @param a         [in] 命令 
     201 * @param b         [in] オペデータ 
     202 * 
     203 * @return          なし 
    205204 */ 
    206205 
     
    238237 
    239238/*------------------------------------------------------------------------*/ 
    240 /** ƒŠƒeƒ‰ƒ‹‚ȃIƒyƒf[ƒ^‚̃oƒCƒgƒR[ƒh‚𐶐¬ 
    241  * 
    242  * @param env       [in] ƒoƒCƒgƒR[ƒhŠÂ‹« 
    243  * @param a         [in] –½—ß 
    244  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    245  * 
    246  * @return          ‚È‚µ 
     239/** リテラルなオペデータのバイトコードを生成 
     240 * 
     241 * @param env       [in] バイトコード環境 
     242 * @param a         [in] 命令 
     243 * @param r         [in] オブジェクト 
     244 * 
     245 * @return          なし 
    247246 */ 
    248247 
     
    254253    obj = NewtPackLiteral(r); 
    255254 
    256     // ƒŠƒeƒ‰ƒ‹‚ðŒŸõ 
     255    // リテラルを検索 
    257256    b = NewtFindArrayIndex(env->literals, obj, 0); 
    258257 
    259     if (b == -1) // ƒŠƒeƒ‰ƒ‹‚ɒljÁ 
     258    if (b == -1) // リテラルに追加 
    260259        b = NBCAddLiteralEnv(env, obj); 
    261260 
     
    265264 
    266265/*------------------------------------------------------------------------*/ 
    267 /** ƒŠƒeƒ‰ƒ‹‚ðƒvƒbƒVƒ 
    268 ‚·‚éƒoƒCƒgƒR[ƒh‚𐶐¬ 
    269  * 
    270  * @param env       [in] ƒoƒCƒgƒR[ƒhŠÂ‹« 
    271  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    272  * 
    273  * @return          ƒŠƒeƒ‰ƒ‹ƒŠƒXƒg‚̈ʒu 
     266/** リテラルをプッシュするバイトコードを生成 
     267 * 
     268 * @param env       [in] バイトコード環境 
     269 * @param r         [in] オブジェクト 
     270 * 
     271 * @return          リテラルリストの位置 
    274272 */ 
    275273 
     
    290288#pragma mark - 
    291289/*------------------------------------------------------------------------*/ 
    292 /** ƒIƒuƒWƒFƒNƒg‚ðƒvƒbƒVƒ 
    293 ‚·‚éƒoƒCƒgƒR[ƒh‚𐶐¬ 
    294  * 
    295  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    296  * 
    297  * @return          ‚È‚µ 
     290/** オブジェクトをプッシュするバイトコードを生成 
     291 * 
     292 * @param r         [in] オブジェクト 
     293 * 
     294 * @return          なし 
    298295 */ 
    299296 
     
    339336 
    340337/*------------------------------------------------------------------------*/ 
    341 /** •ϐ”‚ðŽæ“¾‚·‚éƒoƒCƒgƒR[ƒh‚𐶐¬ 
    342  * 
    343  * @param stree     [in] \•¶–Ø 
    344  * @param r         [in] •ϐ”–¼ƒIƒuƒWƒFƒNƒg 
    345  * 
    346  * @return          ‚È‚µ 
     338/** 変数を取得するバイトコードを生成 
     339 * 
     340 * @param stree     [in] 構文木 
     341 * @param r         [in] 変数名オブジェクト 
     342 * 
     343 * @return          なし 
    347344 */ 
    348345 
     
    351348    if (NewtHasSlot(CONSTANT, r)) 
    352349    { 
    353         // ’萔‚̏ꍇ 
     350        // 定数の場合 
    354351        newtRefVar  c; 
    355352 
     
    365362        int16_t b; 
    366363 
    367         // ƒ[ƒJƒ‹•ϐ”‚ðŒŸõ 
     364        // ローカル変数を検索 
    368365        b = NewtFindSlotIndex(ARGFRAME, r); 
    369366     
     
    377374 
    378375/*------------------------------------------------------------------------*/ 
    379 /** ŠÖ”ŒÄo‚µ‚̃oƒCƒgƒR[ƒh‚𐶐¬ 
    380  * 
    381  * @param fn        [in] ŠÖ”ƒIƒuƒWƒFƒNƒg 
    382  * @param numArgs   [in] ˆø”‚̐” 
    383  * 
    384  * @return          ‚È‚µ 
     376/** 関数呼出しのバイトコードを生成 
     377 * 
     378 * @param fn        [in] 関数オブジェクト 
     379 * @param numArgs   [in] 引数の数 
     380 * 
     381 * @return          なし 
    385382 */ 
    386383 
     
    389386    int i; 
    390387 
    391     // freq-func ‚̏ꍇ 
     388    // freq-func の場合 
    392389    for (i = 0; freq_func_tb[i].name != NULL; i++) 
    393390    { 
     
    412409 
    413410/*------------------------------------------------------------------------*/ 
    414 /** ŠÖ”‚̈ø”ƒtƒŒ[ƒ€‚ðì¬‚·‚é 
    415  * 
    416  * @param argFrame      [in] ˆø”ƒtƒŒ[ƒ€ 
    417  * @param stree         [in] \•¶–Ø 
    418  * @param r             [in] \•¶–؃m[ƒh 
    419  * @param indefiniteP   [out]•s’è’·ƒtƒ‰ƒO 
    420  * 
    421  * @return          ˆø”‚̐” 
     411/** 関数の引数フレームを作成する 
     412 * 
     413 * @param argFrame      [in] 引数フレーム 
     414 * @param stree         [in] 構文木 
     415 * @param r             [in] 構文木ノード 
     416 * @param indefiniteP   [out]不定長フラグ 
     417 * 
     418 * @return          引数の数 
    422419 */ 
    423420 
     
    449446 
    450447            case kNPSArg: 
    451                 // type (node->op1) ‚͂Ƃ肠‚¦‚¸–³Ž‹ 
     448                // type (node->op1) はとりあえず無視 
    452449                NcSetSlot(argFrame, node->op2, kNewtRefUnbind); 
    453450                break; 
    454451 
    455452            case kNPSIndefinite: 
    456                 // •s’è’· 
     453                // 不定長 
    457454                NcSetSlot(argFrame, node->op1, kNewtRefUnbind); 
    458455                *indefiniteP = true; 
     
    475472 
    476473/*------------------------------------------------------------------------*/ 
    477 /** ŠÖ”ƒIƒuƒWƒFƒNƒg‚̈ø”‚ðì¬‚·‚é 
    478  * 
    479  * @param fn        [in] ŠÖ”ƒIƒuƒWƒFƒNƒg 
    480  * @param stree     [in] \•¶–Ø 
    481  * @param r         [in] \•¶–؃m[ƒh 
    482  * 
    483  * @return          ˆø”‚̐” 
     474/** 関数オブジェクトの引数を作成する 
     475 * 
     476 * @param fn        [in] 関数オブジェクト 
     477 * @param stree     [in] 構文木 
     478 * @param r         [in] 構文木ノード 
     479 * 
     480 * @return          引数の数 
    484481 */ 
    485482 
     
    508505 
    509506/*------------------------------------------------------------------------*/ 
    510 /** ŠÖ”‚̃oƒCƒgƒR[ƒhŠÂ‹«‚ðì¬‚·‚é 
    511  * 
    512  * @param stree     [in] \•¶–Ø 
    513  * @param args      [in] ˆø” 
    514  * 
    515  * @return          ƒoƒCƒgƒR[ƒhŠÂ‹« 
     507/** 関数のバイトコード環境を作成する 
     508 * 
     509 * @param stree     [in] 構文木 
     510 * @param args      [in] 引数 
     511 * 
     512 * @return          バイトコード環境 
    516513 */ 
    517514 
     
    528525 
    529526/*------------------------------------------------------------------------*/ 
    530 /** •ªŠò–½—߂̃oƒCƒgƒR[ƒh‚𐶐¬ 
    531  * 
    532  * @param a         [in] –½—ß 
    533  * 
    534  * @return          ƒoƒCƒgƒR[ƒh‚̈ʒu 
     527/** 分岐命令のバイトコードを生成 
     528 * 
     529 * @param a         [in] 命令 
     530 * 
     531 * @return          バイトコードの位置 
    535532 */ 
    536533 
     
    548545#pragma mark - 
    549546/*------------------------------------------------------------------------*/ 
    550 /** ƒ[ƒJƒ‹•ϐ”‚ð’è‹`‚·‚éƒoƒCƒgƒR[ƒh‚𐶐¬ 
    551  * 
    552  * @param type      [in] •ϐ”‚ÌŒ^ 
    553  * @param r         [in] •ϐ”–¼ƒVƒ“ƒ{ƒ‹ 
    554  * @param init      [in] ‰Šú‰» 
    555  * 
    556  * @return          ‚È‚µ 
    557  * 
    558  * @note            ‚à‚µ init ‚ª true ‚È‚ç‚Ώ‰Šú‰»‚·‚éƒoƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    559  *                  Œ»Ý‚̃o[ƒWƒ‡ƒ“‚Å‚Í type ‚ÍŠ®‘S‚É–³Ž‹‚³‚ê‚é 
     547/** ローカル変数を定義するバイトコードを生成 
     548 * 
     549 * @param type      [in] 変数の型 
     550 * @param r         [in] 変数名シンボル 
     551 * @param init      [in] 初期化 
     552 * 
     553 * @return          なし 
     554 * 
     555 * @note            もし init が true ならば初期化するバイトコードを生成する 
     556 *                  現在のバージョンでは type は完全に無視される 
    560557 */ 
    561558 
     
    568565        int16_t b; 
    569566     
    570         // ƒ[ƒJƒ‹•ϐ”‚ðŒŸõ 
     567        // ローカル変数を検索 
    571568        b = NewtFindSlotIndex(ARGFRAME, r); 
    572569 
     
    581578#pragma mark - 
    582579/*------------------------------------------------------------------------*/ 
    583 /** ƒoƒCƒgƒR[ƒh‚ðƒoƒbƒNƒpƒbƒ`‚·‚é 
    584  * 
    585  * @param cx        [in] ƒoƒbƒNƒpƒbƒ`‚·‚éˆÊ’u 
    586  * @param b         [in] ƒoƒbƒNƒpƒbƒ`‚·‚éƒIƒyƒf[ƒ^ 
    587  * 
    588  * @return          ‚È‚µ 
    589  * 
    590  *@@note               •ªŠò–½—߂⃋[ƒv–½—߂Ȃǂ·‚®‚ɃIƒyƒf[ƒ^‚ªŒˆ’肵‚È‚¢ê‡‚ÉŽg‚¤ 
     580/** バイトコードをバックパッチする 
     581 * 
     582 * @param cx        [in] バックパッチする位置 
     583 * @param b         [in] バックパッチするオペデータ 
     584 * 
     585 * @return          なし 
     586 * 
     587 * @note                分岐命令やループ命令などすぐにオペデータが決定しない場合に使う 
    591588 */ 
    592589 
     
    599596 
    600597/*------------------------------------------------------------------------*/ 
    601 /** ƒuƒŒ[ƒN–½—߂̈ʒu‚ðƒXƒ^ƒbƒN‚·‚é 
    602  * 
    603  * @param cx        [in] ƒuƒŒ[ƒN–½—߂̈ʒu 
    604  * 
    605  * @return          ‚È‚µ 
    606  * 
    607  *@@note               ƒoƒbƒNƒpƒbƒ`‚Ì‚½‚߂Ɋo‚¦‚Ä‚¨‚­ 
     598/** ブレーク命令の位置をスタックする 
     599 * 
     600 * @param cx        [in] ブレーク命令の位置 
     601 * 
     602 * @return          なし 
     603 * 
     604 * @note                バックパッチのために覚えておく 
    608605 */ 
    609606 
     
    622619 
    623620/*------------------------------------------------------------------------*/ 
    624 /** ƒ‹[ƒv“à‚̃uƒŒ[ƒN–½—ß‚ðƒoƒbƒNƒpƒbƒ`‚·‚é 
    625  * 
    626  * @param loop_head [in] ƒ‹[ƒv‚ÌŠJŽnˆÊ’u 
    627  * @param cx        [in] ƒ‹[ƒv‚̏I‚í‚èˆÊ’u 
    628  * 
    629  * @return          ‚È‚µ 
     621/** ループ内のブレーク命令をバックパッチする 
     622 * 
     623 * @param loop_head [in] ループの開始位置 
     624 * @param cx        [in] ループの終わり位置 
     625 * 
     626 * @return          なし 
    630627 */ 
    631628 
     
    641638            break; 
    642639 
    643         NBCBackPatch(branch, cx);   // ƒuƒ‰ƒ“ƒ`‚ðƒoƒbƒNƒpƒbƒ` 
     640        NBCBackPatch(branch, cx);   // ブランチをバックパッチ 
    644641    } 
    645642} 
     
    648645#pragma mark - 
    649646/*------------------------------------------------------------------------*/ 
    650 /** —áŠOˆ—–½—߂̈ʒu‚ðƒXƒ^ƒbƒN‚·‚é 
    651  * 
    652  * @param cx        [in] —áŠOˆ—–½—߂̈ʒu 
    653  * 
    654  * @return          ‚È‚µ 
    655  * 
    656  *@@note               ƒoƒbƒNƒpƒbƒ`‚Ì‚½‚߂Ɋo‚¦‚Ä‚¨‚­ 
     647/** 例外処理命令の位置をスタックする 
     648 * 
     649 * @param cx        [in] 例外処理命令の位置 
     650 * 
     651 * @return          なし 
     652 * 
     653 * @note                バックパッチのために覚えておく 
    657654 */ 
    658655 
     
    671668 
    672669/*------------------------------------------------------------------------*/ 
    673 /** TRY•¶“à‚̃uƒŒ[ƒN–½—ß‚ðƒoƒbƒNƒpƒbƒ`‚·‚é 
    674  * 
    675  * @param try_head  [in] TRY•¶‚ÌŠJŽnˆÊ’u 
    676  * @param cx        [in] TRY•¶‚̏I‚í‚èˆÊ’u 
    677  * 
    678  * @return          ‚È‚µ 
     670/** TRY文内のブレーク命令をバックパッチする 
     671 * 
     672 * @param try_head  [in] TRY文の開始位置 
     673 * @param cx        [in] TRY文の終わり位置 
     674 * 
     675 * @return          なし 
    679676 */ 
    680677 
     
    690687            break; 
    691688 
    692         NBCBackPatch(branch, cx);   // ƒuƒ‰ƒ“ƒ`‚ðƒoƒbƒNƒpƒbƒ` 
    693     } 
    694 } 
    695  
    696  
    697 /*------------------------------------------------------------------------*/ 
    698 /** —áŠOˆ—–½—߂̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    699  * 
    700  * @param pc        [in] —áŠOˆ—–½—߂̃vƒƒOƒ‰ƒ€ƒJƒEƒ“ƒ^ 
    701  * 
    702  * @return          ‚È‚µ 
     689        NBCBackPatch(branch, cx);   // ブランチをバックパッチ 
     690    } 
     691} 
     692 
     693 
     694/*------------------------------------------------------------------------*/ 
     695/** 例外処理命令のバイトコードを生成する 
     696 * 
     697 * @param pc        [in] 例外処理命令のプログラムカウンタ 
     698 * 
     699 * @return          なし 
    703700 */ 
    704701 
     
    711708    b = NBCGenPushLiteral(r); 
    712709 
    713     NBCPushOnexcpStack(b);  // ƒoƒbƒNƒpƒbƒ`‚Ì‚½‚߂ɃXƒ^ƒbƒN‚ɃvƒbƒVƒ 
    714 ‚·‚é 
    715 } 
    716  
    717  
    718 /*------------------------------------------------------------------------*/ 
    719 /** —áŠOˆ—“à‚̃uƒŒ[ƒN–½—߂̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    720  * 
    721  * @return          ‚È‚µ 
     710    NBCPushOnexcpStack(b);  // バックパッチのためにスタックにプッシュする 
     711} 
     712 
     713 
     714/*------------------------------------------------------------------------*/ 
     715/** 例外処理内のブレーク命令のバイトコードを生成する 
     716 * 
     717 * @return          なし 
    722718 */ 
    723719 
     
    726722    uint32_t    cx; 
    727723     
    728     cx = NBCGenBranch(kNBCBranch);  // ƒuƒ‰ƒ“ƒ` 
    729     NBCPushOnexcpStack(cx);         // ƒoƒbƒNƒpƒbƒ`‚Ì‚½‚߂ɃXƒ^ƒbƒN‚ɃvƒbƒVƒ 
    730 ‚·‚é 
    731 } 
    732  
    733  
    734 /*------------------------------------------------------------------------*/ 
    735 /** ƒoƒbƒNƒpƒbƒ`Žž‚É—áŠOˆ—ƒVƒ“ƒ{ƒ‹‚ðƒŠƒeƒ‰ƒ‹ƒŠƒXƒg‚É“o˜^‚·‚é 
    736  * 
    737  * @param sp        [in] —áŠOˆ—–½—߃Xƒ^ƒbƒN‚̃Xƒ^ƒbƒNƒ|ƒCƒ“ƒ^ 
    738  * @param pc        [in] —áŠOˆ—–½—߂̃vƒƒOƒ‰ƒ€ƒJƒEƒ“ƒ^ 
    739  * 
    740  * @return          ‚È‚µ 
     724    cx = NBCGenBranch(kNBCBranch);  // ブランチ 
     725    NBCPushOnexcpStack(cx);         // バックパッチのためにスタックにプッシュする 
     726} 
     727 
     728 
     729/*------------------------------------------------------------------------*/ 
     730/** バックパッチ時に例外処理シンボルをリテラルリストに登録する 
     731 * 
     732 * @param sp        [in] 例外処理命令スタックのスタックポインタ 
     733 * @param pc        [in] 例外処理命令のプログラムカウンタ 
     734 * 
     735 * @return          なし 
    741736 */ 
    742737 
     
    755750#pragma mark - 
    756751/*------------------------------------------------------------------------*/ 
    757 /** ŠÖ”ƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    758  * 
    759  * @param env       [in] ƒoƒCƒgƒR[ƒhŠÂ‹« 
    760  * 
    761  * @return          ŠÖ”ƒIƒuƒWƒFƒNƒg 
     752/** 関数オブジェクトを作成する 
     753 * 
     754 * @param env       [in] バイトコード環境 
     755 * 
     756 * @return          関数オブジェクト 
    762757 */ 
    763758 
     
    800795    // constant 
    801796    if (env->parent) 
    802     {   // e‚ª‚ ‚ê‚Β萔ƒtƒŒ[ƒ€‚ð‹¤—L‚·‚é 
     797    {   // 親があれば定数フレームを共有する 
    803798        env->constant = env->parent->constant; 
    804799    } 
    805800    else 
    806     {   // e‚ª‚È‚¯‚ê‚ΐV‹K‚ɒ萔ƒtƒŒ[ƒ€‚ðì¬ 
     801    {   // 親がなければ新規に定数フレームを作成 
    807802        env->constant = NcMakeFrame(); 
    808803    } 
     
    813808 
    814809/*------------------------------------------------------------------------*/ 
    815 /** ŠÖ”–½—߃e[ƒuƒ‹‚ð‰Šú‰»‚·‚é 
    816  * 
    817  * @return          ‚È‚µ 
     810/** 関数命令テーブルを初期化する 
     811 * 
     812 * @return          なし 
    818813 */ 
    819814 
     
    830825 
    831826/*------------------------------------------------------------------------*/ 
    832 /** ƒoƒCƒgƒR[ƒhŠÂ‹«‚ðì¬‚·‚é 
    833  * 
    834  * @param parent    [in] ŒÄo‚µŒ³‚̃oƒCƒgƒR[ƒhŠÂ‹« 
    835  * 
    836  * @return          ƒoƒCƒgƒR[ƒhŠÂ‹« 
     827/** バイトコード環境を作成する 
     828 * 
     829 * @param parent    [in] 呼出し元のバイトコード環境 
     830 * 
     831 * @return          バイトコード環境 
    837832 */ 
    838833 
     
    856851 
    857852/*------------------------------------------------------------------------*/ 
    858 /** ƒoƒCƒgƒR[ƒhŠÂ‹«‚ð‰ð•ú‚·‚é 
    859  * 
    860  * @param env       [in] ƒoƒCƒgƒR[ƒhŠÂ‹« 
    861  * 
    862  * @return          ‚È‚µ 
     853/** バイトコード環境を解放する 
     854 * 
     855 * @param env       [in] バイトコード環境 
     856 * 
     857 * @return          なし 
    863858 */ 
    864859 
     
    877872 
    878873/*------------------------------------------------------------------------*/ 
    879 /** ŠÖ”ƒIƒuƒWƒFƒNƒg‚̐¶¬‚ðI—¹‚·‚é 
    880  * 
    881  * @param envP      [in] ƒoƒCƒgƒR[ƒhŠÂ‹«‚ւ̃|ƒCƒ“ƒ^ 
    882  * 
    883  * @return          ŠÖ”ƒIƒuƒWƒFƒNƒg 
     874/** 関数オブジェクトの生成を終了する 
     875 * 
     876 * @param envP      [in] バイトコード環境へのポインタ 
     877 * 
     878 * @return          関数オブジェクト 
    884879 */ 
    885880 
     
    914909 
    915910/*------------------------------------------------------------------------*/ 
    916 /** ƒoƒCƒgƒR[ƒh¶¬‚Ì‚½‚߂̏‰Šú‰» 
    917  * 
    918  * @return          ‚È‚µ 
     911/** バイトコード生成のための初期化 
     912 * 
     913 * @return          なし 
    919914 */ 
    920915 
     
    926921 
    927922/*------------------------------------------------------------------------*/ 
    928 /** ƒoƒCƒgƒR[ƒh¶¬‚ÌŒãŽn–– 
    929  * 
    930  * @return          ‚È‚µ 
     923/** バイトコード生成の後始末 
     924 * 
     925 * @return          なし 
    931926 */ 
    932927 
     
    946941#pragma mark - 
    947942/*------------------------------------------------------------------------*/ 
    948 /** •¶‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    949  * 
    950  * @param stree     [in] \•¶–Ø 
    951  * @param r         [in] \•¶–؃m[ƒh 
    952  * @param ret       [in] –ß‚è’l‚Ì—L–³ 
    953  * 
    954  * @return          ‚È‚µ 
     943/** 文のバイトコードを生成する 
     944 * 
     945 * @param stree     [in] 構文木 
     946 * @param r         [in] 構文木ノード 
     947 * @param ret       [in] 戻り値の有無 
     948 * 
     949 * @return          なし 
    955950 */ 
    956951 
     
    969964 
    970965/*------------------------------------------------------------------------*/ 
    971 /** ’萔‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    972  * 
    973  * @param stree     [in] \•¶–Ø 
    974  * @param r         [in] \•¶–؃m[ƒh 
    975  * 
    976  * @return          ‚È‚µ 
     966/** 定数のバイトコードを生成する 
     967 * 
     968 * @param stree     [in] 構文木 
     969 * @param r         [in] 構文木ノード 
     970 * 
     971 * @return          なし 
    977972 */ 
    978973 
     
    993988 
    994989            case kNPSAsign: 
    995                 // node->op2 ‚ªƒIƒuƒWƒFƒNƒg‚łȂ¢ê‡‚̏ˆ—‚ðs‚¤‚±‚Æ 
     990                // node->op2 がオブジェクトでない場合の処理を行うこと 
    996991                NcSetSlot(CONSTANT, node->op1, node->op2); 
    997992                break; 
     
    10061001 
    10071002/*------------------------------------------------------------------------*/ 
    1008 /** ƒOƒ[ƒoƒ‹•ϐ”‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1009  * 
    1010  * @param stree     [in] \•¶–Ø 
    1011  * @param r         [in] \•¶–؃m[ƒh 
    1012  * 
    1013  * @return          ‚È‚µ 
     1003/** グローバル変数のバイトコードを生成する 
     1004 * 
     1005 * @param stree     [in] 構文木 
     1006 * @param r         [in] 構文木ノード 
     1007 * 
     1008 * @return          なし 
    10141009 */ 
    10151010 
     
    10331028                NBCGenBC_op(stree, node->op2); 
    10341029 
    1035                 // defGlobalVar ‚ðŒÄo‚· 
     1030                // defGlobalVar を呼出す 
    10361031                NBCGenCallFn(NSSYM0(defGlobalVar), 2); 
    10371032                break; 
     
    10431038        NBCGenPUSH(kNewtRefUnbind); 
    10441039 
    1045         // defGlobalVar ‚ðŒÄo‚· 
     1040        // defGlobalVar を呼出す 
    10461041        NBCGenCallFn(NSSYM0(defGlobalVar), 2); 
    10471042    } 
     
    10541049 
    10551050/*------------------------------------------------------------------------*/ 
    1056 /** ƒ[ƒJƒ‹•ϐ”‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1057  * 
    1058  * @param stree     [in] \•¶–Ø 
    1059  * @param type      [in] Œ^ 
    1060  * @param r         [in] \•¶–؃m[ƒh 
    1061  * 
    1062  * @return          ‚È‚µ 
    1063  * 
    1064  * @note            Œ»Ý‚̃o[ƒWƒ‡ƒ“‚Å‚Í type ‚ÍŠ®‘S‚É–³Ž‹‚³‚ê‚é 
     1051/** ローカル変数のバイトコードを生成する 
     1052 * 
     1053 * @param stree     [in] 構文木 
     1054 * @param type      [in]  
     1055 * @param r         [in] 構文木ノード 
     1056 * 
     1057 * @return          なし 
     1058 * 
     1059 * @note            現在のバージョンでは type は完全に無視される 
    10651060 */ 
    10661061 
     
    10981093 
    10991094/*------------------------------------------------------------------------*/ 
    1100 /** Œ^‚ª³‚µ‚¢‚©ƒ`ƒFƒbƒN‚·‚é 
    1101  * 
    1102  * @param type      [in] Œ^ 
    1103  * 
    1104  * @retval          true    ³‚µ‚¢Œ^ 
    1105  * @retval          false   ³‚µ‚­‚È‚¢Œ^ 
     1095/** 型が正しいかチェックする 
     1096 * 
     1097 * @param type      [in]  
     1098 * 
     1099 * @retval          true    正しい型 
     1100 * @retval          false   正しくない型 
    11061101 */ 
    11071102 
     
    11241119 
    11251120/*------------------------------------------------------------------------*/ 
    1126 /** TRY•¶‚̐擪‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1127  * 
    1128  * @param stree     [in] \•¶–Ø 
    1129  * @param r         [in] \•¶–؃m[ƒh 
    1130  * 
    1131  * @return          —áŠOˆ—‚̐” 
     1121/** TRY文の先頭のバイトコードを生成する 
     1122 * 
     1123 * @param stree     [in] 構文木 
     1124 * @param r         [in] 構文木ノード 
     1125 * 
     1126 * @return          例外処理の数 
    11321127 */ 
    11331128 
     
    11451140        { 
    11461141            case kNPSOnexception: 
    1147                 NBCGenPUSH(node->op1);  // ƒVƒ“ƒ{ƒ‹ 
    1148                 NBCGenOnexcpPC(-1); // PCiƒ_ƒ~[j 
     1142                NBCGenPUSH(node->op1);  // シンボル 
     1143                NBCGenOnexcpPC(-1); // PC(ダミー) 
    11491144 
    11501145                numExcps = 1; 
     
    11631158 
    11641159/*------------------------------------------------------------------------*/ 
    1165 /** TRY•¶‚̏I‚í‚è‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1166  * 
    1167  * @param stree     [in] \•¶–Ø 
    1168  * @param r         [in] \•¶–؃m[ƒh 
    1169  * @param onexcpspP [in] —áŠOˆ—–½—߂̏‡”Ԃւ̃|ƒCƒ“ƒ^ 
    1170  * 
    1171  * @return          —áŠOˆ—‚̐” 
     1160/** TRY文の終わりのバイトコードを生成する 
     1161 * 
     1162 * @param stree     [in] 構文木 
     1163 * @param r         [in] 構文木ノード 
     1164 * @param onexcpspP [in] 例外処理命令の順番へのポインタ 
     1165 * 
     1166 * @return          例外処理の数 
    11721167 */ 
    11731168 
     
    11861181        { 
    11871182            case kNPSOnexception: 
    1188                 // new-handler ‚̈ø”‚ðƒoƒbƒNƒpƒbƒ` 
     1183                // new-handler の引数をバックパッチ 
    11891184                NBCOnexcpBackPatchL(*onexcpspP, CX); 
    11901185                (*onexcpspP)++; 
    11911186 
    1192                 // onexception ‚̃R[ƒh¶¬ 
     1187                // onexception のコード生成 
    11931188                NBCGenBC_stmt(stree, node->op2, true); 
    11941189                NBCGenOnexcpBranch(); 
     
    12091204 
    12101205/*------------------------------------------------------------------------*/ 
    1211 /** TRY•¶‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1212  * 
    1213  * @param stree     [in] \•¶–Ø 
    1214  * @param expr      [in] Ž®‚̍\•¶–؃m[ƒh 
    1215  * @param onexception_list  [in] —áŠOˆ—‚̍\•¶–؃m[ƒh 
    1216  * 
    1217  * @return          ‚È‚µ 
     1206/** TRY文のバイトコードを生成する 
     1207 * 
     1208 * @param stree     [in] 構文木 
     1209 * @param expr      [in] 式の構文木ノード 
     1210 * @param onexception_list  [in] 例外処理の構文木ノード 
     1211 * 
     1212 * @return          なし 
    12181213 */ 
    12191214 
     
    12301225    NBCGenCode(kNBCNewHandlers, numExcps); 
    12311226 
    1232     // ŽÀs•¶ 
     1227    // 実行文 
    12331228    NBCGenBC_op(stree, expr); 
    12341229    NBCGenCode(kNBCPopHandlers, 0); 
     
    12411236    NBCGenTryPost(stree, onexception_list, &onexcpsp); 
    12421237 
    1243     // onexception ‚̏I—¹ 
    1244     NBCOnexcpBackPatchs(onexcp_cx, CX); // onexception ‚̏I—¹‚ðƒoƒbƒNƒpƒbƒ` 
     1238    // onexception の終了 
     1239    NBCOnexcpBackPatchs(onexcp_cx, CX); // onexception の終了をバックパッチ 
    12451240    NBCGenCode(kNBCPopHandlers, 0); 
    12461241 
    1247     // ONEXCPSP ‚ð–ß‚· 
     1242    // ONEXCPSP を戻す 
    12481243    ONEXCPSP = onexcpsp; 
    12491244 
    1250     // ƒoƒbƒNƒpƒbƒ` 
    1251     NBCBackPatch(branch_cx, CX);    // branch ‚ðƒoƒbƒNƒpƒbƒ` 
    1252 } 
    1253  
    1254  
    1255 /*------------------------------------------------------------------------*/ 
    1256 /** IF•¶‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1257  * 
    1258  * @param stree     [in] \•¶–Ø 
    1259  * @param cond      [in] ðŒŽ®‚̍\•¶–؃m[ƒh 
    1260  * @param thenelse  [in] THEN, ELSE ‚̍\•¶–؃m[ƒh 
    1261  * @param ret       [in] –ß‚è’l‚Ì—L–³ 
    1262  * 
    1263  * @return          ‚È‚µ 
     1245    // バックパッチ 
     1246    NBCBackPatch(branch_cx, CX);    // branch をバックパッチ 
     1247} 
     1248 
     1249 
     1250/*------------------------------------------------------------------------*/ 
     1251/** IF文のバイトコードを生成する 
     1252 * 
     1253 * @param stree     [in] 構文木 
     1254 * @param cond      [in] 条件式の構文木ノード 
     1255 * @param thenelse  [in] THEN, ELSE の構文木ノード 
     1256 * @param ret       [in] 戻り値の有無 
     1257 * 
     1258 * @return          なし 
    12641259 */ 
    12651260 
     
    12841279    } 
    12851280 
    1286     // THEN •¶ 
     1281    // THEN  
    12871282    NBCGenBC_stmt(stree, ifthen, ret); 
    12881283 
    12891284    if (ifelse == kNewtRefUnbind) 
    12901285    { 
    1291         NBCBackPatch(cond_cx, CX);              // ðŒ•¶‚ðƒoƒbƒNƒpƒbƒ` 
     1286        NBCBackPatch(cond_cx, CX);              // 条件文をバックパッチ 
    12921287    } 
    12931288    else 
     
    12951290        uint32_t    then_done; 
    12961291 
    1297         then_done = NBCGenBranch(kNBCBranch);   // THEN •¶‚̏I—¹ 
    1298         NBCBackPatch(cond_cx, CX);              // ðŒ•¶‚ðƒoƒbƒNƒpƒbƒ` 
    1299  
    1300         // ELSE •¶ 
     1292        then_done = NBCGenBranch(kNBCBranch);   // THEN 文の終了 
     1293        NBCBackPatch(cond_cx, CX);              // 条件文をバックパッチ 
     1294 
     1295        // ELSE  
    13011296        NBCGenBC_stmt(stree, ifelse, ret); 
    13021297 
    1303         NBCBackPatch(then_done, CX);            // THEN •¶I—¹‚̃uƒ‰ƒ“ƒ`‚ðƒoƒbƒNƒpƒbƒ` 
    1304     } 
    1305 } 
    1306  
    1307  
    1308 /*------------------------------------------------------------------------*/ 
    1309 /** ˜_—AND ‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1310  * 
    1311  * @param stree     [in] \•¶–Ø 
    1312  * @param op1       [in] ƒIƒyƒ‰ƒ“ƒh‚P‚̍\•¶–؃m[ƒh 
    1313  * @param op2       [in] ƒIƒyƒ‰ƒ“ƒh‚Q‚̍\•¶–؃m[ƒh 
    1314  * 
    1315  * @return          ‚È‚µ 
     1298        NBCBackPatch(then_done, CX);            // THEN 文終了のブランチをバックパッチ 
     1299    } 
     1300} 
     1301 
     1302 
     1303/*------------------------------------------------------------------------*/ 
     1304/** 論理AND のバイトコードを生成する 
     1305 * 
     1306 * @param stree     [in] 構文木 
     1307 * @param op1       [in] オペランド1の構文木ノード 
     1308 * @param op2       [in] オペランド2の構文木ノード 
     1309 * 
     1310 * @return          なし 
    13161311 */ 
    13171312 
     
    13211316    uint32_t    cx2; 
    13221317 
    1323     // ƒIƒyƒ‰ƒ“ƒh‚P 
     1318    // オペランド1 
    13241319    NBCGenBC_op(stree, op1); 
    13251320 
    1326     // NIL ‚Ȃ番Šò 
     1321    // NIL なら分岐 
    13271322    cx1 = NBCGenBranch(kNBCBranchIfFalse); 
    13281323 
    1329     // ƒIƒyƒ‰ƒ“ƒh‚Q 
     1324    // オペランド2 
    13301325    NBCGenBC_op(stree, op2); 
    1331     // Ž®‚̍Ōã‚Ö•ªŠò 
     1326    // 式の最後へ分岐 
    13321327    cx2 = NBCGenBranch(kNBCBranch); 
    13331328 
    1334     // –ß‚è’l‚ðƒvƒbƒVƒ 
    1335  
    1336     NBCBackPatch(cx1, CX);      // •ªŠò‚ðƒoƒbƒNƒpƒbƒ` 
    1337     NBCGenPUSH(kNewtRefNIL);    // –ß‚è’l‚Í NIL 
    1338  
    1339     // Ž®‚̍Ōã 
    1340     NBCBackPatch(cx2, CX);      // •ªŠò‚ðƒoƒbƒNƒpƒbƒ` 
    1341 } 
    1342  
    1343  
    1344 /*------------------------------------------------------------------------*/ 
    1345 /** ˜_—OR ‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1346  * 
    1347  * @param stree     [in] \•¶–Ø 
    1348  * @param op1       [in] ƒIƒyƒ‰ƒ“ƒh‚P‚̍\•¶–؃m[ƒh 
    1349  * @param op2       [in] ƒIƒyƒ‰ƒ“ƒh‚Q‚̍\•¶–؃m[ƒh 
    1350  * 
    1351  * @return          ‚È‚µ 
     1329    // 戻り値をプッシュ 
     1330    NBCBackPatch(cx1, CX);      // 分岐をバックパッチ 
     1331    NBCGenPUSH(kNewtRefNIL);    // 戻り値は NIL 
     1332 
     1333    // 式の最後 
     1334    NBCBackPatch(cx2, CX);      // 分岐をバックパッチ 
     1335} 
     1336 
     1337 
     1338/*------------------------------------------------------------------------*/ 
     1339/** 論理OR のバイトコードを生成する 
     1340 * 
     1341 * @param stree     [in] 構文木 
     1342 * @param op1       [in] オペランド1の構文木ノード 
     1343 * @param op2       [in] オペランド2の構文木ノード 
     1344 * 
     1345 * @return          なし 
    13521346 */ 
    13531347 
     
    13571351    uint32_t    cx2; 
    13581352 
    1359     // ƒIƒyƒ‰ƒ“ƒh‚P 
     1353    // オペランド1 
    13601354    NBCGenBC_op(stree, op1); 
    13611355 
    1362     // TRUE ‚Ȃ番Šò 
     1356    // TRUE なら分岐 
    13631357    cx1 = NBCGenBranch(kNBCBranchIfTrue); 
    13641358 
    1365     // ƒIƒyƒ‰ƒ“ƒh‚Q 
     1359    // オペランド2 
    13661360    NBCGenBC_op(stree, op2); 
    1367     // Ž®‚̍Ōã‚Ö•ªŠò 
     1361    // 式の最後へ分岐 
    13681362    cx2 = NBCGenBranch(kNBCBranch); 
    13691363 
    1370     // –ß‚è’l‚ðƒvƒbƒVƒ 
    1371  
    1372     NBCBackPatch(cx1, CX);      // •ªŠò‚ðƒoƒbƒNƒpƒbƒ` 
     1364    // 戻り値をプッシュ 
     1365    NBCBackPatch(cx1, CX);      // 分岐をバックパッチ 
    13731366 
    13741367    if (NPSRefIsSyntaxNode(op1)) 
     
    13771370        NBCGenPUSH(op1); 
    13781371 
    1379     // Ž®‚̍Ōã 
    1380     NBCBackPatch(cx2, CX);      // •ªŠò‚ðƒoƒbƒNƒpƒbƒ` 
    1381 } 
    1382  
    1383  
    1384 /*------------------------------------------------------------------------*/ 
    1385 /** LOOP•¶‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1386  * 
    1387  * @param stree     [in] \•¶–Ø 
    1388  * @param expr      [in] ŽÀs•¶‚̍\•¶–؃m[ƒh 
    1389  * 
    1390  * @return          ‚È‚µ 
     1372    // 式の最後 
     1373    NBCBackPatch(cx2, CX);      // 分岐をバックパッチ 
     1374} 
     1375 
     1376 
     1377/*------------------------------------------------------------------------*/ 
     1378/** LOOP文のバイトコードを生成する 
     1379 * 
     1380 * @param stree     [in] 構文木 
     1381 * @param expr      [in] 実行文の構文木ノード 
     1382 * 
     1383 * @return          なし 
    13911384 */ 
    13921385 
     
    13951388    uint32_t    loop_head; 
    13961389 
    1397     // loop ‚̐擪 
     1390    // loop の先頭 
    13981391    loop_head = CX; 
    13991392 
    1400     // ŽÀs•¶ 
     1393    // 実行文 
    14011394    NBCGenBC_stmt(stree, expr, false); 
    14021395 
    1403     NBCGenCode(kNBCBranch, loop_head);  // loop ‚̐擪‚Ö 
    1404  
    1405     // ƒoƒbƒNƒpƒbƒ` 
    1406     NBCBreakBackPatchs(loop_head, CX);  // break ‚ðƒoƒbƒNƒpƒbƒ` 
    1407 } 
    1408  
    1409  
    1410 /*------------------------------------------------------------------------*/ 
    1411 /** ƒCƒeƒŒ[ƒ^‚ÅŽg—p‚·‚éˆêŽž“I‚ȃVƒ“ƒ{ƒ‹‚ðì¬‚·‚é 
    1412  * 
    1413  * @param index     [in] ƒCƒ“ƒfƒbƒNƒX•ϐ”ƒVƒ“ƒ{ƒ‹ 
    1414  * @param val       [in] ƒoƒŠƒ 
    1415 [•ϐ”ƒVƒ“ƒ{ƒ‹ 
    1416  * @param s         [in] •¶Žš—ñ 
    1417  * 
    1418  * @return          ƒVƒ“ƒ{ƒ‹ 
     1396    NBCGenCode(kNBCBranch, loop_head);  // loop の先頭へ 
     1397 
     1398    // バックパッチ 
     1399    NBCBreakBackPatchs(loop_head, CX);  // break をバックパッチ 
     1400} 
     1401 
     1402 
     1403/*------------------------------------------------------------------------*/ 
     1404/** イテレータで使用する一時的なシンボルを作成する 
     1405 * 
     1406 * @param index     [in] インデックス変数シンボル 
     1407 * @param val       [in] バリュー変数シンボル 
     1408 * @param s         [in] 文字列 
     1409 * 
     1410 * @return          シンボル 
    14191411 */ 
    14201412 
     
    14351427 
    14361428/*------------------------------------------------------------------------*/ 
    1437 /** FOR•¶‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1438  * 
    1439  * @param stree     [in] \•¶–Ø 
    1440  * @param r         [in] \•¶–؃m[ƒh 
    1441  * @param expr      [in] ŽÀs•¶‚̍\•¶–؃m[ƒh 
    1442  * 
    1443  * @return          ‚È‚µ 
     1429/** FOR文のバイトコードを生成する 
     1430 * 
     1431 * @param stree     [in] 構文木 
     1432 * @param r         [in] 構文木ノード 
     1433 * @param expr      [in] 実行文の構文木ノード 
     1434 * 
     1435 * @return          なし 
    14441436 */ 
    14451437 
     
    14631455        by = NSINT(1); 
    14641456 
    1465     // index ‚ð‰Šú‰» 
     1457    // index を初期化 
    14661458    NBCGenBC_op(stree, v); 
    14671459    NBCDefLocal(NS_INT, index, true); 
    14681460 
    1469     // index|limit ‚ð‰Šú‰» 
     1461    // index|limit を初期化 
    14701462    _limit = NBCMakeTempSymbol(index, kNewtRefUnbind, "limit"); 
    14711463    NBCGenBC_op(stree, to); 
    14721464    NBCDefLocal(NS_INT, _limit, true); 
    14731465 
    1474     // index|limit ‚ð‰Šú‰» 
     1466    // index|limit を初期化 
    14751467    _incr = NBCMakeTempSymbol(index, kNewtRefUnbind, "incr"); 
    14761468    NBCGenBC_op(stree, by); 
    14771469    NBCDefLocal(NS_INT, _incr, true); 
    14781470 
    1479     // ðŒ•¶‚Öƒuƒ‰ƒ“ƒ` 
     1471    // 条件文へブランチ 
    14801472    NBCGenGetVar(stree, _incr); 
    14811473    NBCGenGetVar(stree, index); 
     
    14831475    branch_cx = NBCGenBranch(kNBCBranch); 
    14841476 
    1485     // loop ‚̐擪 
     1477    // loop の先頭 
    14861478    loop_head = CX; 
    14871479 
    1488     // ŽÀs•¶ 
     1480    // 実行文 
    14891481    NBCGenBC_stmt(stree, expr, false); 
    14901482 
    1491     // •ϐ”‚É by ‚𑝕ª 
     1483    // 変数に by を増分 
    14921484    { 
    14931485        int16_t b; 
     
    14991491    } 
    15001492 
    1501     // ðŒ•¶ 
    1502     NBCBackPatch(branch_cx, CX);            // branch ‚ðƒoƒbƒNƒpƒbƒ` 
     1493    // 条件文 
     1494    NBCBackPatch(branch_cx, CX);            // branch をバックパッチ 
    15031495    NBCGenGetVar(stree, _limit); 
    1504     NBCGenCode(kNBCBranchIfLoopNotDone, loop_head); // loop ‚̐擪‚Ö 
    1505  
    1506     // –ß‚è’l 
     1496    NBCGenCode(kNBCBranchIfLoopNotDone, loop_head); // loop の先頭へ 
     1497 
     1498    // 戻り値 
    15071499    NBCGenPUSH(kNewtRefNIL); 
    15081500 
    1509     // ƒoƒbƒNƒpƒbƒ` 
    1510     NBCBreakBackPatchs(loop_head, CX);  // break ‚ðƒoƒbƒNƒpƒbƒ` 
    1511 } 
    1512  
    1513  
    1514 /*------------------------------------------------------------------------*/ 
    1515 /** FOREACH•¶‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1516  * 
    1517  * @param stree     [in] \•¶–Ø 
    1518  * @param r         [in] \•¶–؃m[ƒh 
    1519  * @param expr      [in] ŽÀs•¶‚̍\•¶–؃m[ƒh 
    1520  * 
    1521  * @return          ‚È‚µ 
     1501    // バックパッチ 
     1502    NBCBreakBackPatchs(loop_head, CX);  // break をバックパッチ 
     1503} 
     1504 
     1505 
     1506/*------------------------------------------------------------------------*/ 
     1507/** FOREACH文のバイトコードを生成する 
     1508 * 
     1509 * @param stree     [in] 構文木 
     1510 * @param r         [in] 構文木ノード 
     1511 * @param expr      [in] 実行文の構文木ノード 
     1512 * 
     1513 * @return          なし 
    15221514 */ 
    15231515 
     
    15651557        NBCDefLocal(NSSYM0(array), _result, false); 
    15661558 
    1567         // –ß‚è’l‚Ì array ‚ðì¬ 
     1559        // 戻り値の array を作成 
    15681560        if (NewtRefIsNIL(deeply)) 
    15691561            lenIndex = kIterMax; 
     
    15801572        NBCDefLocal(NSSYM0(array), _result, true); 
    15811573 
    1582         // index ‚̏‰Šú‰» 
     1574        // index の初期化 
    15831575        NBCGenPUSH(NSINT(0)); 
    15841576        NBCDefLocal(NS_INT, _index, true); 
    15851577    } 
    15861578 
    1587     // ðŒ•¶‚Öƒuƒ‰ƒ“ƒ` 
     1579    // 条件文へブランチ 
    15881580    branch_cx = NBCGenBranch(kNBCBranch); 
    15891581 
    1590     // loop ‚̐擪 
     1582    // loop の先頭 
    15911583    loop_head = CX; 
    15921584 
    1593     // val ‚̃Zƒbƒg 
     1585    // val のセット 
    15941586    NBCGenGetVar(stree, _iter); 
    15951587    NBCGenPUSH(NewtMakeInteger(kIterValue)); 
     
    15971589    NBCDefLocal(kNewtRefUnbind, val, true); 
    15981590 
    1599     // index ‚̃Zƒbƒg 
     1591    // index のセット 
    16001592    if (index != kNewtRefUnbind) 
    16011593    { 
     
    16061598    } 
    16071599 
    1608     // ŽÀs•¶ 
     1600    // 実行文 
    16091601    if (collect) 
    16101602    { 
     
    16351627    NBCGenCode(kNBCIterNext, 0); 
    16361628 
    1637     // ðŒ•¶ 
    1638     NBCBackPatch(branch_cx, CX);        // branch ‚ðƒoƒbƒNƒpƒbƒ` 
     1629    // 条件文 
     1630    NBCBackPatch(branch_cx, CX);        // branch をバックパッチ 
    16391631    NBCGenGetVar(stree, _iter); 
    16401632    NBCGenCode(kNBCIterDone, 0);        // iter-done 
    1641     NBCGenCode(kNBCBranchIfFalse, loop_head);   // loop ‚̐擪‚Ö 
    1642  
    1643     // –ß‚è’l 
     1633    NBCGenCode(kNBCBranchIfFalse, loop_head);   // loop の先頭へ 
     1634 
     1635    // 戻り値 
    16441636    if (collect) 
    16451637        NBCGenGetVar(stree, _result); 
     
    16471639        NBCGenPUSH(kNewtRefNIL); 
    16481640 
    1649     // ƒoƒbƒNƒpƒbƒ` 
    1650     NBCBreakBackPatchs(loop_head, CX);  // break ‚ðƒoƒbƒNƒpƒbƒ` 
    1651  
    1652     // iterator ‚ÌŒãŽn–– 
     1641    // バックパッチ 
     1642    NBCBreakBackPatchs(loop_head, CX);  // break をバックパッチ 
     1643 
     1644    // iterator の後始末 
    16531645    if (collect) 
    16541646    { 
     
    16631655 
    16641656/*------------------------------------------------------------------------*/ 
    1665 /** WHILE•¶‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1666  * 
    1667  * @param stree     [in] \•¶–Ø 
    1668  * @param cond      [in] ðŒŽ®‚̍\•¶–؃m[ƒh 
    1669  * @param expr      [in] ŽÀs•¶‚̍\•¶–؃m[ƒh 
    1670  * 
    1671  * @return          ‚È‚µ 
     1657/** WHILE文のバイトコードを生成する 
     1658 * 
     1659 * @param stree     [in] 構文木 
     1660 * @param cond      [in] 条件式の構文木ノード 
     1661 * @param expr      [in] 実行文の構文木ノード 
     1662 * 
     1663 * @return          なし 
    16721664 */ 
    16731665 
     
    16771669    uint32_t    cond_cx; 
    16781670 
    1679     // loop ‚̐擪 
     1671    // loop の先頭 
    16801672    loop_head = CX; 
    16811673 
    1682     // ðŒ•¶ 
     1674    // 条件文 
    16831675    NBCGenBC_op(stree, cond); 
    16841676    cond_cx = NBCGenBranch(kNBCBranchIfFalse); 
    16851677 
    1686     // ŽÀs•¶ 
     1678    // 実行文 
    16871679    NBCGenBC_stmt(stree, expr, false); 
    16881680 
    1689     NBCGenCode(kNBCBranch, loop_head);  // loop ‚̐擪‚Ö 
    1690  
    1691     // ƒoƒbƒNƒpƒbƒ` 
    1692     NBCBackPatch(cond_cx, CX);      // ðŒ•¶‚ðƒoƒbƒNƒpƒbƒ` 
    1693  
    1694     // –ß‚è’l 
     1681    NBCGenCode(kNBCBranch, loop_head);  // loop の先頭へ 
     1682 
     1683    // バックパッチ 
     1684    NBCBackPatch(cond_cx, CX);      // 条件文をバックパッチ 
     1685 
     1686    // 戻り値 
    16951687    NBCGenPUSH(kNewtRefNIL); 
    16961688 
    1697     NBCBreakBackPatchs(loop_head, CX);  // break ‚ðƒoƒbƒNƒpƒbƒ` 
    1698 } 
    1699  
    1700  
    1701 /*------------------------------------------------------------------------*/ 
    1702 /** REPEAT•¶‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1703  * 
    1704  * @param stree     [in] \•¶–Ø 
    1705  * @param expr      [in] ŽÀs•¶‚̍\•¶–؃m[ƒh 
    1706  * @param cond      [in] ðŒŽ®‚̍\•¶–؃m[ƒh 
    1707  * 
    1708  * @return          ‚È‚µ 
     1689    NBCBreakBackPatchs(loop_head, CX);  // break をバックパッチ 
     1690} 
     1691 
     1692 
     1693/*------------------------------------------------------------------------*/ 
     1694/** REPEAT文のバイトコードを生成する 
     1695 * 
     1696 * @param stree     [in] 構文木 
     1697 * @param expr      [in] 実行文の構文木ノード 
     1698 * @param cond      [in] 条件式の構文木ノード 
     1699 * 
     1700 * @return          なし 
    17091701 */ 
    17101702 
     
    17131705    uint32_t    loop_head; 
    17141706 
    1715     // loop ‚̐擪 
     1707    // loop の先頭 
    17161708    loop_head = CX; 
    17171709 
    1718     // ŽÀs•¶ 
     1710    // 実行文 
    17191711    NBCGenBC_stmt(stree, expr, false); 
    17201712 
    1721     // ðŒ•¶ 
     1713    // 条件文 
    17221714    NBCGenBC_op(stree, cond); 
    1723     NBCGenCode(kNBCBranchIfFalse, loop_head);   // loop ‚̐擪‚Ö 
    1724  
    1725     // –ß‚è’l 
     1715    NBCGenCode(kNBCBranchIfFalse, loop_head);   // loop の先頭へ 
     1716 
     1717    // 戻り値 
    17261718    NBCGenPUSH(kNewtRefNIL); 
    17271719 
    1728     // ƒoƒbƒNƒpƒbƒ` 
    1729     NBCBreakBackPatchs(loop_head, CX);      // break ‚ðƒoƒbƒNƒpƒbƒ` 
    1730 } 
    1731  
    1732  
    1733 /*------------------------------------------------------------------------*/ 
    1734 /** BREAK•¶‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1735  * 
    1736  * @param stree     [in] \•¶–Ø 
    1737  * @param expr      [in] ŽÀs•¶‚̍\•¶–؃m[ƒh 
    1738  * 
    1739  * @return          ‚È‚µ 
     1720    // バックパッチ 
     1721    NBCBreakBackPatchs(loop_head, CX);      // break をバックパッチ 
     1722} 
     1723 
     1724 
     1725/*------------------------------------------------------------------------*/ 
     1726/** BREAK文のバイトコードを生成する 
     1727 * 
     1728 * @param stree     [in] 構文木 
     1729 * @param expr      [in] 実行文の構文木ノード 
     1730 * 
     1731 * @return          なし 
    17401732 */ 
    17411733 
     
    17441736    uint32_t    cx; 
    17451737 
    1746     // –ß‚è’l 
     1738    // 戻り値 
    17471739    if (expr == kNewtRefUnbind) 
    17481740        NBCGenPUSH(kNewtRefNIL); 
     
    17501742        NBCGenBC_op(stree, expr); 
    17511743 
    1752     // ƒuƒ‰ƒ“ƒ` 
    1753     cx = NBCGenBranch(kNBCBranch);  // loop ‚̏I‚í‚è‚Ö 
    1754     NBCPushBreakStack(cx);      // ƒoƒbƒNƒpƒbƒ`‚Ì‚½‚߂ɃXƒ^ƒbƒN‚ɃvƒbƒVƒ 
    1755 ‚·‚é 
    1756 } 
    1757  
    1758  
    1759 /*------------------------------------------------------------------------*/ 
    1760 /** •¶Žš—ñ‚ÌŒ‹‡–½—߂̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1761  * 
    1762  * @param stree     [in] \•¶–Ø 
    1763  * @param op1       [in] ˆø”‚P 
    1764  * @param op2       [in] ˆø”‚Q 
    1765  * @param dlmt      [in] ‹æØ‚è•¶Žš—ñ 
    1766  * 
    1767  * @return          ‚È‚µ 
     1744    // ブランチ 
     1745    cx = NBCGenBranch(kNBCBranch);  // loop の終わりへ 
     1746    NBCPushBreakStack(cx);      // バックパッチのためにスタックにプッシュする 
     1747} 
     1748 
     1749 
     1750/*------------------------------------------------------------------------*/ 
     1751/** 文字列の結合命令のバイトコードを生成する 
     1752 * 
     1753 * @param stree     [in] 構文木 
     1754 * @param op1       [in] 引数1 
     1755 * @param op2       [in] 引数2 
     1756 * @param dlmt      [in] 区切り文字列 
     1757 * 
     1758 * @return          なし 
    17681759 */ 
    17691760 
     
    17901781 
    17911782/*------------------------------------------------------------------------*/ 
    1792 /** ‘ã“üŽ®‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1793  * 
    1794  * @param stree     [in] \•¶–Ø 
    1795  * @param lvalue    [in] ¶•Ó 
    1796  * @param expr      [in] Ž® 
    1797  * @param ret       [in] –ß‚è’l‚Ì—L–³ 
    1798  * 
    1799  * @return          ‚È‚µ 
     1783/** 代入式のバイトコードを生成する 
     1784 * 
     1785 * @param stree     [in] 構文木 
     1786 * @param lvalue    [in] 左辺 
     1787 * @param expr      [in]  
     1788 * @param ret       [in] 戻り値の有無 
     1789 * 
     1790 * @return          なし 
    18001791 */ 
    18011792 
     
    18071798        if (NewtHasSlot(CONSTANT, lvalue)) 
    18081799        { 
    1809             // ’萔‚̏ꍇ 
     1800            // 定数の場合 
    18101801            NBError(kNErrAssignToConstant); 
    18111802            return; 
     
    18691860 
    18701861/*------------------------------------------------------------------------*/ 
    1871 /** EXISTSŽ®‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1872  * 
    1873  * @param stree     [in] \•¶–Ø 
    1874  * @param r         [in] \•¶–؃m[ƒh 
    1875  * 
    1876  * @return          ‚È‚µ 
     1862/** EXISTS式のバイトコードを生成する 
     1863 * 
     1864 * @param stree     [in] 構文木 
     1865 * @param r         [in] 構文木ノード 
     1866 * 
     1867 * @return          なし 
    18771868 */ 
    18781869 
     
    18831874        if (NewtFindArrayIndex(LITERALS, r, 0) != -1) 
    18841875        { 
    1885             // ƒ[ƒJƒ‹•ϐ”‚ªéŒ¾‚³‚ê‚Ä‚¢‚éê‡ 
     1876            // ローカル変数が宣言されている場合 
    18861877            NBCGenPUSH(kNewtRefTRUE); 
    18871878        } 
     
    19191910 
    19201911/*------------------------------------------------------------------------*/ 
    1921 /** ƒŒƒV[ƒo‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1922  * 
    1923  * @param stree     [in] \•¶–Ø 
    1924  * @param r         [in] \•¶–؃m[ƒh 
    1925  * 
    1926  * @return          ‚È‚µ 
     1912/** レシーバのバイトコードを生成する 
     1913 * 
     1914 * @param stree     [in] 構文木 
     1915 * @param r         [in] 構文木ノード 
     1916 * 
     1917 * @return          なし 
    19271918 */ 
    19281919 
     
    19371928 
    19381929/*------------------------------------------------------------------------*/ 
    1939 /** ƒƒ\ƒbƒhEXISTSŽ®‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1940  * 
    1941  * @param stree     [in] \•¶–Ø 
    1942  * @param receiver  [in] ƒŒƒV[ƒo 
    1943  * @param name      [in] ƒƒ\ƒbƒh–¼ 
    1944  * 
    1945  * @return          ‚È‚µ 
     1930/** メソッドEXISTS式のバイトコードを生成する 
     1931 * 
     1932 * @param stree     [in] 構文木 
     1933 * @param receiver  [in] レシーバ 
     1934 * @param name      [in] メソッド名 
     1935 * 
     1936 * @return          なし 
    19461937 */ 
    19471938 
     
    19491940        nps_node_t receiver, nps_node_t name) 
    19501941{ 
    1951     // receiver ‚̐¶¬ 
     1942    // receiver の生成 
    19521943    NBCGenReceiver(stree, receiver); 
    19531944 
     
    19551946    NBCGenBC_op(stree, name); 
    19561947 
    1957     // hasVariable ‚ðŒÄo‚· 
     1948    // hasVariable を呼出す 
    19581949    NBCGenCallFn(NSSYM0(hasVariable), 2); 
    19591950} 
     
    19611952 
    19621953/*------------------------------------------------------------------------*/ 
    1963 /** ŠÖ”’è‹`‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1964  * 
    1965  * @param stree     [in] \•¶–Ø 
    1966  * @param args      [in] ˆø” 
    1967  * @param expr      [in] Ž® 
    1968  * 
    1969  * @return          ‚È‚µ 
     1954/** 関数定義のバイトコードを生成する 
     1955 * 
     1956 * @param stree     [in] 構文木 
     1957 * @param args      [in] 引数 
     1958 * @param expr      [in]  
     1959 * 
     1960 * @return          なし 
    19701961 */ 
    19711962 
     
    19841975 
    19851976/*------------------------------------------------------------------------*/ 
    1986 /** ƒOƒ[ƒoƒ‹ŠÖ”’è‹`‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    1987  * 
    1988  * @param stree     [in] \•¶–Ø 
    1989  * @param name      [in] ƒOƒ[ƒoƒ‹ŠÖ”–¼ 
    1990  * @param fn        [in] ŠÖ” 
    1991  * 
    1992  * @return          ‚È‚µ 
     1977/** グローバル関数定義のバイトコードを生成する 
     1978 * 
     1979 * @param stree     [in] 構文木 
     1980 * @param name      [in] グローバル関数名 
     1981 * @param fn        [in] 関数 
     1982 * 
     1983 * @return          なし 
    19931984 */ 
    19941985 
     
    20031994 
    20041995/*------------------------------------------------------------------------*/ 
    2005 /** ŠÖ”ŒÄo‚µ‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    2006  * 
    2007  * @param stree     [in] \•¶–Ø 
    2008  * @param name      [in] ƒOƒ[ƒoƒ‹ŠÖ”–¼ 
    2009  * @param args      [in] ˆø” 
    2010  * 
    2011  * @return          ‚È‚µ 
     1996/** 関数呼出しのバイトコードを生成する 
     1997 * 
     1998 * @param stree     [in] 構文木 
     1999 * @param name      [in] グローバル関数名 
     2000 * @param args      [in] 引数 
     2001 * 
     2002 * @return          なし 
    20122003 */ 
    20132004 
     
    20242015 
    20252016/*------------------------------------------------------------------------*/ 
    2026 /** ŠÖ”ƒIƒuƒWƒFƒNƒgŽÀs‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    2027  * 
    2028  * @param stree     [in] \•¶–Ø 
    2029  * @param fn        [in] ŠÖ”ƒIƒuƒWƒFƒNƒg 
    2030  * @param args      [in] ˆø” 
    2031  * 
    2032  * @return          ‚È‚µ 
     2017/** 関数オブジェクト実行のバイトコードを生成する 
     2018 * 
     2019 * @param stree     [in] 構文木 
     2020 * @param fn        [in] 関数オブジェクト 
     2021 * @param args      [in] 引数 
     2022 * 
     2023 * @return          なし 
    20332024 */ 
    20342025 
     
    20472038 
    20482039/*------------------------------------------------------------------------*/ 
    2049 /** ‚Q€ŠÖ”‚̌ďo‚µƒoƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    2050  * 
    2051  * @param stree     [in] \•¶–Ø 
    2052  * @param name      [in] ŠÖ”–¼ 
    2053  * @param op1       [in] ˆø”‚P 
    2054  * @param op2       [in] ˆø”‚Q 
    2055  * 
    2056  * @return          ‚È‚µ 
     2040/** 2項関数の呼出しバイトコードを生成する 
     2041 * 
     2042 * @param stree     [in] 構文木 
     2043 * @param name      [in] 関数名 
     2044 * @param op1       [in] 引数1 
     2045 * @param op2       [in] 引数2 
     2046 * 
     2047 * @return          なし 
    20572048 */ 
    20582049 
     
    20682059 
    20692060/*------------------------------------------------------------------------*/ 
    2070 /** ƒƒ\ƒbƒh‘—M‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    2071  * 
    2072  * @param stree     [in] \•¶–Ø 
    2073  * @param code      [in] ‘—Mƒ^ƒCƒv 
    2074  * @param receiver  [in] ƒŒƒV[ƒo 
    2075  * @param r         [in] ƒƒ\ƒbƒh–¼{ˆø” 
    2076  * 
    2077  * @return          ‚È‚µ 
     2061/** メソッド送信のバイトコードを生成する 
     2062 * 
     2063 * @param stree     [in] 構文木 
     2064 * @param code      [in] 送信タイプ 
     2065 * @param receiver  [in] レシーバ 
     2066 * @param r         [in] メソッド名+引数 
     2067 * 
     2068 * @return          なし 
    20782069 */ 
    20792070 
     
    20862077    node = &stree[NPSRefToSyntaxNode(r)]; 
    20872078 
    2088     // ˆø”‚̐¶¬ 
     2079    // 引数の生成 
    20892080    NBCGenBC_op(stree, node->op2); 
    20902081    numArgs = NBCCountNumArgs(stree, node->op2); 
    20912082 
    2092     // message ‚̐¶¬ 
     2083    // message の生成 
    20932084    NBCGenPUSH(node->op1); 
    20942085 
    2095     // receiver ‚̐¶¬ 
     2086    // receiver の生成 
    20962087    NBCGenReceiver(stree, receiver); 
    20972088 
    2098     // ƒƒbƒZ[ƒWŒÄo‚µ‚̐¶¬ 
     2089    // メッセージ呼出しの生成 
    20992090    NBCGenCode(code, numArgs); 
    21002091} 
     
    21022093 
    21032094/*------------------------------------------------------------------------*/ 
    2104 /** ƒƒ\ƒbƒhÄ‘—M‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    2105  * 
    2106  * @param stree     [in] \•¶–Ø 
    2107  * @param code      [in] ‘—Mƒ^ƒCƒv 
    2108  * @param name      [in] ƒƒ\ƒbƒh–¼ 
    2109  * @param args      [in] ˆø” 
    2110  * 
    2111  * @return          ‚È‚µ 
     2095/** メソッド再送信のバイトコードを生成する 
     2096 * 
     2097 * @param stree     [in] 構文木 
     2098 * @param code      [in] 送信タイプ 
     2099 * @param name      [in] メソッド名 
     2100 * @param args      [in] 引数 
     2101 * 
     2102 * @return          なし 
    21122103 */ 
    21132104 
     
    21262117 
    21272118/*------------------------------------------------------------------------*/ 
    2128 /** ”z—ñì¬‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    2129  * 
    2130  * @param stree     [in] \•¶–Ø 
    2131  * @param klass     [in] ƒNƒ‰ƒX 
    2132  * @param r         [in] ‰Šú‰»ƒf[ƒ^ 
    2133  * 
    2134  * @return          ‚È‚µ 
     2119/** 配列作成のバイトコードを生成する 
     2120 * 
     2121 * @param stree     [in] 構文木 
     2122 * @param klass     [in] クラス 
     2123 * @param r         [in] 初期化データ 
     2124 * 
     2125 * @return          なし 
    21352126 */ 
    21362127 
     
    21482139 
    21492140/*------------------------------------------------------------------------*/ 
    2150 /** ƒtƒŒ[ƒ€ì¬‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    2151  * 
    2152  * @param stree     [in] \•¶–Ø 
    2153  * @param r         [in] ‰Šú‰»ƒf[ƒ^ 
    2154  * 
    2155  * @return          ‚È‚µ 
     2141/** フレーム作成のバイトコードを生成する 
     2142 * 
     2143 * @param stree     [in] 構文木 
     2144 * @param r         [in] 初期化データ 
     2145 * 
     2146 * @return          なし 
    21562147 */ 
    21572148 
     
    21702161 
    21712162/*------------------------------------------------------------------------*/ 
    2172 /** –ß‚è’l‚ª•s—p‚̏ꍇ‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    2173  * 
    2174  * @param ret       [in] –ß‚è’l‚Ì—L–³ 
    2175  * 
    2176  * @return          ‚È‚µ 
     2163/** 戻り値が不用の場合のバイトコードを生成する 
     2164 * 
     2165 * @param ret       [in] 戻り値の有無 
     2166 * 
     2167 * @return          なし 
    21772168 */ 
    21782169 
     
    21852176 
    21862177/*------------------------------------------------------------------------*/ 
    2187 /** \•¶ƒR[ƒh‚̃oƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    2188  * 
    2189  * @param stree     [in] \•¶–Ø 
    2190  * @param node      [in] \•¶–؃m[ƒh 
    2191  * @param ret       [in] –ß‚è’l‚Ì—L–³ 
    2192  * 
    2193  * @return          ‚È‚µ 
     2178/** 構文コードのバイトコードを生成する 
     2179 * 
     2180 * @param stree     [in] 構文木 
     2181 * @param node      [in] 構文木ノード 
     2182 * @param ret       [in] 戻り値の有無 
     2183 * 
     2184 * @return          なし 
    21942185 */ 
    21952186 
     
    23522343 
    23532344/*------------------------------------------------------------------------*/ 
    2354 /** ˆø”‚̐”‚ðƒJƒEƒ“ƒg‚·‚é 
    2355  * 
    2356  * @param stree     [in] \•¶–Ø 
    2357  * @param r         [in] \•¶–؃m[ƒh 
    2358  * 
    2359  * @return          ‚È‚µ 
     2345/** 引数の数をカウントする 
     2346 * 
     2347 * @param stree     [in] 構文木 
     2348 * @param r         [in] 構文木ノード 
     2349 * 
     2350 * @return          なし 
    23602351 */ 
    23612352 
     
    23872378 
    23882379/*------------------------------------------------------------------------*/ 
    2389 /** ƒtƒŒ[ƒ€‚Ü‚½‚Í”z—ñ‚̏‰Šú‰»ƒoƒCƒgƒR[ƒh‚𐶐¬‚·‚éiÄ‹AŒÄo‚µ—pj 
    2390  * 
    2391  * @param stree     [in] \•¶–Ø 
    2392  * @param r         [in] \•¶–؃m[ƒh 
    2393  * 
    2394  * @return          ‚È‚µ 
     2380/** フレームまたは配列の初期化バイトコードを生成する(再帰呼出し用) 
     2381 * 
     2382 * @param stree     [in] 構文木 
     2383 * @param r         [in] 構文木ノード 
     2384 * 
     2385 * @return          なし 
    23952386 */ 
    23962387 
     
    24492440 
    24502441/*------------------------------------------------------------------------*/ 
    2451 /** ƒtƒŒ[ƒ€‚Ü‚½‚Í”z—ñ‚̏‰Šú‰»ƒoƒCƒgƒR[ƒh‚𐶐¬‚·‚é 
    2452  * 
    2453  * @param stree     [in] \•¶–Ø 
    2454  * @param r         [in] \•¶–؃m[ƒh 
    2455  * 
    2456  * @return          ‚È‚µ 
     2442/** フレームまたは配列の初期化バイトコードを生成する 
     2443 * 
     2444 * @param stree     [in] 構文木 
     2445 * @param r         [in] 構文木ノード 
     2446 * 
     2447 * @return          なし 
    24572448 */ 
    24582449 
     
    24802471 
    24812472/*------------------------------------------------------------------------*/ 
    2482 /** ƒoƒCƒgƒR[ƒh‚̐¶¬iÄ‹AŒÄo‚µ—pj 
    2483  * 
    2484  * @param stree     [in] \•¶–Ø 
    2485  * @param n         [in] \•¶–؂̒·‚³ 
    2486  * @param ret       [in] –ß‚è’l‚Ì—L–³ 
    2487  * 
    2488  * @return          ‚È‚µ 
     2473/** バイトコードの生成(再帰呼出し用) 
     2474 * 
     2475 * @param stree     [in] 構文木 
     2476 * @param n         [in] 構文木の長さ 
     2477 * @param ret       [in] 戻り値の有無 
     2478 * 
     2479 * @return          なし 
    24892480 */ 
    24902481 
     
    25672558 
    25682559/*------------------------------------------------------------------------*/ 
    2569 /** ƒoƒCƒgƒR[ƒh‚̐¶¬ 
    2570  * 
    2571  * @param stree     [in] \•¶–Ø 
    2572  * @param size      [in] \•¶–؂̒·‚³ 
    2573  * @param ret       [in] –ß‚è’l‚Ì—L–³ 
    2574  * 
    2575  * @return          ŠÖ”ƒIƒuƒWƒFƒNƒg 
     2560/** バイトコードの生成 
     2561 * 
     2562 * @param stree     [in] 構文木 
     2563 * @param size      [in] 構文木の長さ 
     2564 * @param ret       [in] 戻り値の有無 
     2565 * 
     2566 * @return          関数オブジェクト 
    25762567 */ 
    25772568 
     
    26052596 
    26062597/*------------------------------------------------------------------------*/ 
    2607 /** ƒ\[ƒXƒtƒ@ƒCƒ‹‚ðƒRƒ“ƒpƒCƒ‹ 
    2608  * 
    2609  * @param s         [in] ƒ\[ƒXƒtƒ@ƒCƒ‹‚̃pƒX 
    2610  * @param ret       [in] –ß‚è’l‚Ì—L–³ 
    2611  * 
    2612  * @return          ŠÖ”ƒIƒuƒWƒFƒNƒg 
     2598/** ソースファイルをコンパイル 
     2599 * 
     2600 * @param s         [in] ソースファイルのパス 
     2601 * @param ret       [in] 戻り値の有無 
     2602 * 
     2603 * @return          関数オブジェクト 
    26132604 */ 
    26142605 
     
    26332624 
    26342625/*------------------------------------------------------------------------*/ 
    2635 /** •¶Žš—ñ‚ðƒRƒ“ƒpƒCƒ‹ 
    2636  * 
    2637  * @param s         [in] ƒXƒNƒŠƒvƒg•¶Žš—ñ 
    2638  * @param ret       [in] –ß‚è’l‚Ì—L–³ 
    2639  * 
    2640  * @return          ŠÖ”ƒIƒuƒWƒFƒNƒg 
     2626/** 文字列をコンパイル 
     2627 * 
     2628 * @param s         [in] スクリプト文字列 
     2629 * @param ret       [in] 戻り値の有無 
     2630 * 
     2631 * @return          関数オブジェクト 
    26412632 */ 
    26422633 
     
    26672658#pragma mark - 
    26682659/*------------------------------------------------------------------------*/ 
    2669 /** ƒGƒ‰[ƒƒbƒZ[ƒW‚Ì•\ަ 
    2670  * 
    2671  * @param err       [in] ƒGƒ‰[ƒR[ƒh 
    2672  * 
    2673  * @return          ‚È‚µ 
     2660/** エラーメッセージの表示 
     2661 * 
     2662 * @param err       [in] エラーコード 
     2663 * 
     2664 * @return          なし 
    26742665 */ 
    26752666 
  • NEWT0/trunk/src/newt_core/NewtEnv.c

    r39 r68  
    22/** 
    33 * @file    NewtEnv.c 
    4  * @brief   ŽÀsŠÂ‹« 
     4 * @brief   実行環境 
    55 * 
    66 * @author  M.Nukui 
     
    1111 
    1212 
    13 /* ƒwƒbƒ_ƒtƒ@ƒCƒ‹ */ 
     13/* ヘッダファイル */ 
    1414#include <string.h> 
    1515#include <errno.h> 
     
    2424 
    2525 
    26 /* ƒ}ƒNƒ */ 
    27 #define SYM_TABLE           (newt_env.sym_table)                ///< ƒVƒ“ƒ{ƒ‹ƒe[ƒuƒ‹ 
    28 #define ROOT                (newt_env.root)                     ///< ƒ‹[ƒgƒIƒuƒWƒFƒNƒg 
    29 #define GLOBALS             (newt_env.globals)                  ///< ƒOƒ[ƒoƒ‹•ϐ”ƒe[ƒuƒ‹ 
    30 #define GLOBAL_FNS          (newt_env.global_fns)               ///< ƒOƒ[ƒoƒ‹ŠÖ”ƒe[ƒuƒ‹ 
    31 #define MAGIC_POINTERS      (newt_env.magic_pointers)           ///< ƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^ƒe[ƒuƒ‹ 
    32  
    33 #define INITSYM2(sym, str)  sym = NewtMakeSymbol(str)           ///< ‚æ‚­Žg‚¤ƒVƒ“ƒ{ƒ‹‚̏‰Šú‰» 
    34 #define INITSYM(name)       INITSYM2(newt_sym.name, #name)      ///< ‚æ‚­Žg‚¤ƒVƒ“ƒ{ƒ‹‚̏‰Šú‰»i“ÁŽê•¶Žš‚È‚µj 
    35  
    36  
    37 /* ƒOƒ[ƒoƒ‹•ϐ” */ 
    38 newt_env_t  newt_env;       ///< ŽÀsŠÂ‹« 
    39 newt_sym_t  newt_sym;       ///< ‚æ‚­Žg‚¤ƒVƒ“ƒ{ƒ‹‚̕ۊǏꏊ 
    40  
    41  
    42 /* ŠÖ”ƒvƒƒgƒ^ƒCƒv */ 
     26/* マクロ */ 
     27#define SYM_TABLE           (newt_env.sym_table)                ///< シンボルテーブル 
     28#define ROOT                (newt_env.root)                     ///< ルートオブジェクト 
     29#define GLOBALS             (newt_env.globals)                  ///< グローバル変数テーブル 
     30#define GLOBAL_FNS          (newt_env.global_fns)               ///< グローバル関数テーブル 
     31#define MAGIC_POINTERS      (newt_env.magic_pointers)           ///< マジックポインタテーブル 
     32 
     33#define INITSYM2(sym, str)  sym = NewtMakeSymbol(str)           ///< よく使うシンボルの初期化 
     34#define INITSYM(name)       INITSYM2(newt_sym.name, #name)      ///< よく使うシンボルの初期化(特殊文字なし) 
     35 
     36 
     37/* グローバル変数 */ 
     38newt_env_t  newt_env;       ///< 実行環境 
     39newt_sym_t  newt_sym;       ///< よく使うシンボルの保管場所 
     40 
     41 
     42/* 関数プロトタイプ */ 
    4343char *  replacechr(char * str, char srch, char repl); 
    4444 
     
    5252#pragma mark - 
    5353/*------------------------------------------------------------------------*/ 
    54 /** •¶Žš—ñ‚Ì•¶Žš‚ðŽw’肳‚ꂽ•¶Žš‚Å’u‚«Š·‚¦‚é 
    55  * 
    56  * @param str       [i/o]•¶Žš—ñ 
    57  * @param src       [in] ’uŠ·‚¦‚ç‚ê‚é•¶Žš 
    58  * @param dest      [in] ’uŠ·‚¦‚é•¶Žš 
    59  * 
    60  * @return          ’u‚«Š·‚¦‚ç‚ꂽ•¶Žš—ñ 
     54/** 文字列の文字を指定された文字で置き換える 
     55 * 
     56 * @param str       [i/o]文字列 
     57 * @param src       [in] 置換えられる文字 
     58 * @param dest      [in] 置換える文字 
     59 * 
     60 * @return          置き換えられた文字列 
    6161 */ 
    6262 
     
    7676#pragma mark - 
    7777/*------------------------------------------------------------------------*/ 
    78 /** ŠÂ‹«•ϐ”‚©‚çƒfƒtƒHƒ‹ƒgƒGƒ“ƒR[ƒfƒBƒ“ƒO‚ðŽæ“¾ 
    79  * 
    80  * @return          ƒfƒtƒHƒ‹ƒgƒGƒ“ƒR[ƒfƒBƒ“ƒOi•¶Žš—ñj 
     78/** 環境変数からデフォルトエンコーディングを取得 
     79 * 
     80 * @return          デフォルトエンコーディング(文字列) 
    8181 */ 
    8282 
     
    101101#pragma mark - 
    102102/*------------------------------------------------------------------------*/ 
    103 /** ‚æ‚­Žg‚¤ƒVƒ“ƒ{ƒ‹‚̏‰Šú‰» 
    104  * 
    105  * @return          ‚È‚µ 
     103/** よく使うシンボルの初期化 
     104 * 
     105 * @return          なし 
    106106 */ 
    107107 
     
    149149    INITSYM(forEachState); 
    150150 
    151     // functionsi•K{j 
     151    // functions(必須) 
    152152    INITSYM(hasVariable); 
    153153    INITSYM(hasVar); 
     
    212212 
    213213/*------------------------------------------------------------------------*/ 
    214 /** ƒVƒXƒeƒ€ŠÂ‹«•ϐ”‚̏‰Šú‰» 
    215  * 
    216  * @return          ‚È‚µ 
     214/** システム環境変数の初期化 
     215 * 
     216 * @return          なし 
    217217 */ 
    218218 
     
    262262 
    263263/*------------------------------------------------------------------------*/ 
    264 /** ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̏‰Šú‰» 
    265  * 
    266  * @param argc      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̐” 
    267  * @param argv      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚Ì”z—ñ 
    268  * @param n         [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̈ʒu 
    269  * 
    270  * @return          ‚È‚µ 
     264/** コマンドライン引数の初期化 
     265 * 
     266 * @param argc      [in] コマンドライン引数の数 
     267 * @param argv      [in] コマンドライン引数の配列 
     268 * @param n         [in] コマンドライン引数の位置 
     269 * 
     270 * @return          なし 
    271271 */ 
    272272  
     
    320320 
    321321/*------------------------------------------------------------------------*/ 
    322 /** ƒo[ƒWƒ‡ƒ“î•ñ‚̏‰Šú‰» 
    323  * 
    324  * @return          ‚È‚µ 
     322/** バージョン情報の初期化 
     323 * 
     324 * @return          なし 
    325325 */ 
    326326 
     
    331331    versInfo = NcMakeFrame(); 
    332332 
    333     // ƒvƒƒ_ƒNƒg–¼ 
     333    // プロダクト名 
    334334    NcSetSlot(versInfo, NSSYM(name), NewtMakeString(NEWT_NAME, true)); 
    335     // ƒvƒƒg”ԍ† 
     335    // プロト番号 
    336336    NcSetSlot(versInfo, NSSYM(proto), NewtMakeString(NEWT_PROTO, true)); 
    337     // ƒo[ƒWƒ‡ƒ“”ԍ† 
     337    // バージョン番号 
    338338    NcSetSlot(versInfo, NSSYM(version), NewtMakeString(NEWT_VERSION, true)); 
    339     // ƒrƒ‹ƒh”ԍ† 
     339    // ビルド番号 
    340340    NcSetSlot(versInfo, NSSYM(build), NewtMakeString(NEWT_BUILD, true)); 
    341     // ƒRƒs[ƒ‰ƒCƒg 
     341    // コピーライト 
    342342    NcSetSlot(versInfo, NSSYM(copyright), NewtMakeString(NEWT_COPYRIGHT, true)); 
    343     // ƒXƒ^ƒbƒtƒ[ƒ‹ 
     343    // スタッフロール 
    344344    NcSetSlot(versInfo, NSSYM(staff), NewtMakeString(NEWT_STAFF, true)); 
    345345 
    346     // ƒŠ[ƒhƒIƒ“ƒŠ[‚É‚µ‚ăOƒ[ƒoƒ‹•ϐ”‚É“ü‚ê‚é 
     346    // リードオンリーにしてグローバル変数に入れる 
    347347    NcSetSlot(GLOBALS, NSSYM(_VERSION_), NewtPackLiteral(versInfo)); 
    348348} 
     
    350350 
    351351/*------------------------------------------------------------------------*/ 
    352 /** ŽÀsŠÂ‹«‚̏‰Šú‰» 
    353  * 
    354  * @param argc      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̐” 
    355  * @param argv      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚Ì”z—ñ 
    356  * @param n         [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̈ʒu 
    357  * 
    358  * @return          ‚È‚µ 
     352/** 実行環境の初期化 
     353 * 
     354 * @param argc      [in] コマンドライン引数の数 
     355 * @param argv      [in] コマンドライン引数の配列 
     356 * @param n         [in] コマンドライン引数の位置 
     357 * 
     358 * @return          なし 
    359359 */ 
    360360 
    361361void NewtInitEnv(int argc, const char * argv[], int n) 
    362362{ 
    363     // ƒVƒ“ƒ{ƒ‹ƒe[ƒuƒ‹‚̍쐬 
     363    // シンボルテーブルの作成 
    364364    SYM_TABLE = NewtMakeArray(kNewtRefUnbind, 0); 
    365365    NewtInitSYM(); 
    366366 
    367     // ƒ‹[ƒgƒtƒŒ[ƒ€‚̍쐬 
     367    // ルートフレームの作成 
    368368    ROOT = NcMakeFrame(); 
    369     // ƒOƒ[ƒoƒ‹•ϐ”ƒe[ƒuƒ‹‚̍쐬 
     369    // グローバル変数テーブルの作成 
    370370    GLOBALS = NcMakeFrame(); 
    371     // ƒOƒ[ƒoƒ‹ŠÖ”ƒe[ƒuƒ‹‚̍쐬 
     371    // グローバル関数テーブルの作成 
    372372    GLOBAL_FNS = NcMakeFrame(); 
    373     // ƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^ƒe[ƒuƒ‹‚̍쐬 
     373    // マジックポインタテーブルの作成 
    374374#ifdef __NAMED_MAGIC_POINTER__ 
    375375    MAGIC_POINTERS = NcMakeFrame(); 
     
    378378#endif 
    379379 
    380     // ƒ‹[ƒgƒtƒŒ[ƒ€‚ÉŠeƒe[ƒuƒ‹‚ðŠi”[ 
     380    // ルートフレームに各テーブルを格納 
    381381    NcSetSlot(ROOT, NSSYM0(globals), GLOBALS); 
    382382    NcSetSlot(ROOT, NSSYM0(global_fns), GLOBAL_FNS); 
     
    384384    NcSetSlot(ROOT, NSSYM0(sym_table), SYM_TABLE); 
    385385 
    386     // ŠÂ‹«•ϐ”‚̏‰Šú‰» 
     386    // 環境変数の初期化 
    387387    NewtInitSysEnv(); 
    388     // ARGV ‚̏‰Šú‰» 
     388    // ARGV の初期化 
    389389    NewtInitARGV(argc, argv, n); 
    390     // ƒo[ƒWƒ‡ƒ“î•ñ‚̏‰Šú‰» 
     390    // バージョン情報の初期化 
    391391    NewtInitVersInfo(); 
    392392} 
     
    394394 
    395395/*------------------------------------------------------------------------*/ 
    396 /** ƒCƒ“ƒ^ƒvƒŠƒ^‚̏‰Šú‰» 
    397  * 
    398  * @param argc      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̐” 
    399  * @param argv      [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚Ì”z—ñ 
    400  * @param n         [in] ƒRƒ}ƒ“ƒhƒ‰ƒCƒ“ˆø”‚̈ʒu 
    401  * 
    402  * @return          ‚È‚µ 
     396/** インタプリタの初期化 
     397 * 
     398 * @param argc      [in] コマンドライン引数の数 
     399 * @param argv      [in] コマンドライン引数の配列 
     400 * @param n         [in] コマンドライン引数の位置 
     401 * 
     402 * @return          なし 
    403403 */ 
    404404 
    405405void NewtInit(int argc, const char * argv[], int n) 
    406406{ 
    407     // ƒƒ‚ƒŠƒv[ƒ‹‚ÌŠm•Û 
     407    // メモリプールの確保 
    408408    NEWT_POOL = NewtPoolAlloc(NEWT_POOL_EXPANDSPACE); 
    409     // ŽÀsŠÂ‹«‚̏‰Šú‰» 
     409    // 実行環境の初期化 
    410410    NewtInitEnv(argc, argv, n); 
    411411} 
     
    413413 
    414414/*------------------------------------------------------------------------*/ 
    415 /** ƒCƒ“ƒ^ƒvƒŠƒ^‚ÌŒãŽn–– 
    416  * 
    417  * @return          ‚È‚µ 
     415/** インタプリタの後始末 
     416 * 
     417 * @return          なし 
    418418 */ 
    419419 
    420420void NewtCleanup(void) 
    421421{ 
    422     // ŒãŽn––‚ð‚·‚é‚±‚Æ 
    423  
    424     // ƒƒ‚ƒŠƒv[ƒ‹‚̉ð•ú 
     422    // 後始末をすること 
     423 
     424    // メモリプールの解放 
    425425    if (NEWT_POOL != NULL) 
    426426    { 
     
    434434#pragma mark - 
    435435/*------------------------------------------------------------------------*/ 
    436 /** ƒVƒ“ƒ{ƒ‹ƒe[ƒuƒ‹‚©‚çƒVƒ“ƒ{ƒ‹‚ðŒŸõ‚·‚é 
    437  * 
    438  * @param name      [in] ƒVƒ“ƒ{ƒ‹‚Ì–¼‘O 
    439  * 
    440  * @return          ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
     436/** シンボルテーブルからシンボルを検索する 
     437 * 
     438 * @param name      [in] シンボルの名前 
     439 * 
     440 * @return          シンボルオブジェクト 
    441441 */ 
    442442 
     
    449449#pragma mark - 
    450450/*------------------------------------------------------------------------*/ 
    451 /** ƒOƒ[ƒoƒ‹ŠÖ”‚Ì—L–³‚𒲂ׂé 
    452  * 
    453  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    454  * 
    455  * @retval          true    ƒOƒ[ƒoƒ‹ŠÖ”‚ª‘¶Ý‚·‚é 
    456  * @retval          false   ƒOƒ[ƒoƒ‹ŠÖ”‚ª‘¶Ý‚µ‚È‚¢ 
     451/** グローバル関数の有無を調べる 
     452 * 
     453 * @param r         [in] シンボルオブジェクト 
     454 * 
     455 * @retval          true    グローバル関数が存在する 
     456 * @retval          false   グローバル関数が存在しない 
    457457 */ 
    458458 
     
    464464 
    465465/*------------------------------------------------------------------------*/ 
    466 /** ƒOƒ[ƒoƒ‹•ϐ”‚Ì—L–³‚𒲂ׂé 
    467  * 
    468  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    469  * 
    470  * @retval          true    ƒOƒ[ƒoƒ‹•ϐ”‚ª‘¶Ý‚·‚é 
    471  * @retval          false   ƒOƒ[ƒoƒ‹•ϐ”‚ª‘¶Ý‚µ‚È‚¢ 
     466/** グローバル変数の有無を調べる 
     467 * 
     468 * @param r         [in] シンボルオブジェクト 
     469 * 
     470 * @retval          true    グローバル変数が存在する 
     471 * @retval          false   グローバル変数が存在しない 
    472472 */ 
    473473 
     
    480480#pragma mark - 
    481481/*------------------------------------------------------------------------*/ 
    482 /** ƒOƒ[ƒoƒ‹ŠÖ”‚Ì—L–³‚𒲂ׂé 
    483  * 
    484  * @param rcvr      [in] ƒŒƒV[ƒo 
    485  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    486  * 
    487  * @retval          TRUE    ƒOƒ[ƒoƒ‹ŠÖ”‚ª‘¶Ý‚·‚é 
    488  * @retval          NIL     ƒOƒ[ƒoƒ‹ŠÖ”‚ª‘¶Ý‚µ‚È‚¢ 
    489  * 
    490  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     482/** グローバル関数の有無を調べる 
     483 * 
     484 * @param rcvr      [in] レシーバ 
     485 * @param r         [in] シンボルオブジェクト 
     486 * 
     487 * @retval          TRUE    グローバル関数が存在する 
     488 * @retval          NIL     グローバル関数が存在しない 
     489 * 
     490 * @note            スクリプトからの呼出し用 
    491491 */ 
    492492 
     
    499499#ifdef __USE_OBSOLETE_STYLE__ 
    500500/*------------------------------------------------------------------------*/ 
    501 /** ƒOƒ[ƒoƒ‹ŠÖ”‚Ì—L–³‚𒲂ׂé (OBSOLETE) 
    502  * 
    503  * @param rcvr      [in] ƒŒƒV[ƒo 
    504  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    505  * 
    506  * @retval          TRUE    ƒOƒ[ƒoƒ‹ŠÖ”‚ª‘¶Ý‚·‚é 
    507  * @retval          NIL     ƒOƒ[ƒoƒ‹ŠÖ”‚ª‘¶Ý‚µ‚È‚¢ 
    508  * 
    509  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     501/** グローバル関数の有無を調べる (OBSOLETE) 
     502 * 
     503 * @param rcvr      [in] レシーバ 
     504 * @param r         [in] シンボルオブジェクト 
     505 * 
     506 * @retval          TRUE    グローバル関数が存在する 
     507 * @retval          NIL     グローバル関数が存在しない 
     508 * 
     509 * @note            スクリプトからの呼出し用 
    510510 */ 
    511511 
     
    518518 
    519519/*------------------------------------------------------------------------*/ 
    520 /** ƒOƒ[ƒoƒ‹ŠÖ”‚̎擾 
    521  * 
    522  * @param rcvr      [in] ƒŒƒV[ƒo 
    523  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    524  * 
    525  * @return          ŠÖ”ƒIƒuƒWƒFƒNƒg 
     520/** グローバル関数の取得 
     521 * 
     522 * @param rcvr      [in] レシーバ 
     523 * @param r         [in] シンボルオブジェクト 
     524 * 
     525 * @return          関数オブジェクト 
    526526 */ 
    527527 
     
    533533 
    534534/*------------------------------------------------------------------------*/ 
    535 /** ƒOƒ[ƒoƒ‹ŠÖ”‚Ì’è‹` 
    536  * 
    537  * @param rcvr      [in] ƒŒƒV[ƒo 
    538  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    539  * @param fn        [in] ŠÖ”ƒIƒuƒWƒFƒNƒg 
    540  * 
    541  * @return          ŠÖ”ƒIƒuƒWƒFƒNƒg 
     535/** グローバル関数の定義 
     536 * 
     537 * @param rcvr      [in] レシーバ 
     538 * @param r         [in] シンボルオブジェクト 
     539 * @param fn        [in] 関数オブジェクト 
     540 * 
     541 * @return          関数オブジェクト 
    542542 */ 
    543543 
     
    551551/** Undefine a global function. 
    552552 * 
    553  * @param rcvr      [in] ƒŒƒV[ƒo 
    554  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
     553 * @param rcvr      [in] レシーバ 
     554 * @param r         [in] シンボルオブジェクト 
    555555 * 
    556556 * @return          NIL 
     
    565565 
    566566/*------------------------------------------------------------------------*/ 
    567 /** ƒOƒ[ƒoƒ‹•ϐ”‚Ì—L–³‚𒲂ׂé 
    568  * 
    569  * @param rcvr      [in] ƒŒƒV[ƒo 
    570  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    571  * 
    572  * @retval          TRUE    ƒOƒ[ƒoƒ‹•ϐ”‚ª‘¶Ý‚·‚é 
    573  * @retval          NIL     ƒOƒ[ƒoƒ‹•ϐ”‚ª‘¶Ý‚µ‚È‚¢ 
    574  * 
    575  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     567/** グローバル変数の有無を調べる 
     568 * 
     569 * @param rcvr      [in] レシーバ 
     570 * @param r         [in] シンボルオブジェクト 
     571 * 
     572 * @retval          TRUE    グローバル変数が存在する 
     573 * @retval          NIL     グローバル変数が存在しない 
     574 * 
     575 * @note            スクリプトからの呼出し用 
    576576 */ 
    577577 
     
    584584#ifdef __USE_OBSOLETE_STYLE__ 
    585585/*------------------------------------------------------------------------*/ 
    586 /** ƒOƒ[ƒoƒ‹•ϐ”‚Ì—L–³‚𒲂ׂé (OBSOLETE) 
    587  * 
    588  * @param rcvr      [in] ƒŒƒV[ƒo 
    589  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    590  * 
    591  * @retval          TRUE    ƒOƒ[ƒoƒ‹•ϐ”‚ª‘¶Ý‚·‚é 
    592  * @retval          NIL     ƒOƒ[ƒoƒ‹•ϐ”‚ª‘¶Ý‚µ‚È‚¢ 
    593  * 
    594  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     586/** グローバル変数の有無を調べる (OBSOLETE) 
     587 * 
     588 * @param rcvr      [in] レシーバ 
     589 * @param r         [in] シンボルオブジェクト 
     590 * 
     591 * @retval          TRUE    グローバル変数が存在する 
     592 * @retval          NIL     グローバル変数が存在しない 
     593 * 
     594 * @note            スクリプトからの呼出し用 
    595595 */ 
    596596 
     
    603603 
    604604/*------------------------------------------------------------------------*/ 
    605 /** ƒOƒ[ƒoƒ‹•ϐ”‚̎擾 
    606  * 
    607  * @param rcvr      [in] ƒŒƒV[ƒo 
    608  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    609  * 
    610  * @return          ƒIƒuƒWƒFƒNƒg 
     605/** グローバル変数の取得 
     606 * 
     607 * @param rcvr      [in] レシーバ 
     608 * @param r         [in] シンボルオブジェクト 
     609 * 
     610 * @return          オブジェクト 
    611611 */ 
    612612 
     
    618618 
    619619/*------------------------------------------------------------------------*/ 
    620 /** ƒOƒ[ƒoƒ‹•ϐ”‚É’l‚ðƒZƒbƒg‚·‚é 
    621  * 
    622  * @param rcvr      [in] ƒŒƒV[ƒo 
    623  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    624  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    625  * 
    626  * @return          ƒIƒuƒWƒFƒNƒg 
     620/** グローバル変数に値をセットする 
     621 * 
     622 * @param rcvr      [in] レシーバ 
     623 * @param r         [in] シンボルオブジェクト 
     624 * @param v         [in] 値オブジェクト 
     625 * 
     626 * @return          オブジェクト 
    627627 */ 
    628628 
     
    635635#ifdef __USE_OBSOLETE_STYLE__ 
    636636/*------------------------------------------------------------------------*/ 
    637 /** ƒOƒ[ƒoƒ‹•ϐ”‚É’l‚ðƒZƒbƒg‚·‚é (OBSOLETE) 
    638  * 
    639  * @param rcvr      [in] ƒŒƒV[ƒo 
    640  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    641  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    642  * 
    643  * @return          ƒIƒuƒWƒFƒNƒg 
     637/** グローバル変数に値をセットする (OBSOLETE) 
     638 * 
     639 * @param rcvr      [in] レシーバ 
     640 * @param r         [in] シンボルオブジェクト 
     641 * @param v         [in] 値オブジェクト 
     642 * 
     643 * @return          オブジェクト 
    644644 */ 
    645645 
     
    654654/** Undefine a global variable. 
    655655 * 
    656  * @param rcvr      [in] ƒŒƒV[ƒo 
    657  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
     656 * @param rcvr      [in] レシーバ 
     657 * @param r         [in] シンボルオブジェクト 
    658658 * 
    659659 * @return          NIL 
     
    670670 
    671671/*------------------------------------------------------------------------*/ 
    672 /** ƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^‚ÌŽQÆ‚ð‰ðŒˆ‚·‚é 
    673  * 
    674  * @param r         [in] ƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^ 
    675  * 
    676  * @return          ƒIƒuƒWƒFƒNƒg 
     672/** マジックポインタの参照を解決する 
     673 * 
     674 * @param r         [in] マジックポインタ 
     675 * 
     676 * @return          オブジェクト 
    677677 */ 
    678678 
     
    694694 
    695695/*------------------------------------------------------------------------*/ 
    696 /** ƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^‚Ì’è‹` 
    697  * 
    698  * @param rcvr      [in] ƒŒƒV[ƒo 
    699  * @param r         [in] ƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^ 
    700  * @param v         [in] ƒIƒuƒWƒFƒNƒg 
    701  * 
    702  * @return          ƒIƒuƒWƒFƒNƒg 
     696/** マジックポインタの定義 
     697 * 
     698 * @param rcvr      [in] レシーバ 
     699 * @param r         [in] マジックポインタ 
     700 * @param v         [in] オブジェクト 
     701 * 
     702 * @return          オブジェクト 
    703703 */ 
    704704 
     
    727727 
    728728/*------------------------------------------------------------------------*/ 
    729 /** ƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^‚ÌŽQÆ‚ð‰ðŒˆ‚·‚é 
    730  * 
    731  * @param r         [in] ƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^ 
    732  * 
    733  * @return          ƒIƒuƒWƒFƒNƒg 
     729/** マジックポインタの参照を解決する 
     730 * 
     731 * @param r         [in] マジックポインタ 
     732 * 
     733 * @return          オブジェクト 
    734734 */ 
    735735 
     
    746746 
    747747    if (table != 0) 
    748     {   // ƒe[ƒuƒ‹”ԍ† 0 ˆÈŠO‚Í–¢ƒTƒ|[ƒg 
     748    {   // テーブル番号 0 以外は未サポート 
    749749        return r; 
    750750    } 
     
    765765 
    766766/*------------------------------------------------------------------------*/ 
    767 /** ƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^‚Ì’è‹` 
    768  * 
    769  * @param rcvr      [in] ƒŒƒV[ƒo 
    770  * @param r         [in] ƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^ 
    771  * @param v         [in] ƒIƒuƒWƒFƒNƒg 
    772  * 
    773  * @return          ƒIƒuƒWƒFƒNƒg 
     767/** マジックポインタの定義 
     768 * 
     769 * @param rcvr      [in] レシーバ 
     770 * @param r         [in] マジックポインタ 
     771 * @param v         [in] オブジェクト 
     772 * 
     773 * @return          オブジェクト 
    774774 */ 
    775775 
     
    785785 
    786786        if (table != 0) 
    787         {   // ƒe[ƒuƒ‹”ԍ† 0 ˆÈŠO‚Í–¢ƒTƒ|[ƒg 
     787        {   // テーブル番号 0 以外は未サポート 
    788788            return kNewtRefUnbind; 
    789789        } 
     
    799799 
    800800    if (NewtLength(MAGIC_POINTERS) <= index) 
    801     {   // ƒe[ƒuƒ‹‚Ì’·‚³‚ðŠg’£ 
     801    {   // テーブルの長さを拡張 
    802802        NewtSetLength(MAGIC_POINTERS, index + 1); 
    803803    } 
     
    811811#pragma mark - 
    812812/*------------------------------------------------------------------------*/ 
    813 /** ƒ‹[ƒgƒIƒuƒWƒFƒNƒg‚̎擾 
    814  * 
    815  * @param rcvr      [in] ƒŒƒV[ƒo 
    816  * 
    817  * @return          ƒ‹[ƒgƒIƒuƒWƒFƒNƒg 
     813/** ルートオブジェクトの取得 
     814 * 
     815 * @param rcvr      [in] レシーバ 
     816 * 
     817 * @return          ルートオブジェクト 
    818818 */ 
    819819 
     
    825825 
    826826/*------------------------------------------------------------------------*/ 
    827 /** ƒOƒ[ƒoƒ‹•ϐ”ƒe[ƒuƒ‹‚̎擾 
    828  * 
    829  * @param rcvr      [in] ƒŒƒV[ƒo 
    830  * 
    831  * @return          ƒOƒ[ƒoƒ‹•ϐ”ƒe[ƒuƒ‹ 
     827/** グローバル変数テーブルの取得 
     828 * 
     829 * @param rcvr      [in] レシーバ 
     830 * 
     831 * @return          グローバル変数テーブル 
    832832 */ 
    833833 
     
    839839 
    840840/*------------------------------------------------------------------------*/ 
    841 /** ƒOƒ[ƒoƒ‹ŠÖ”ƒe[ƒuƒ‹‚̎擾 
    842  * 
    843  * @param rcvr      [in] ƒŒƒV[ƒo 
    844  * 
    845  * @return          ƒOƒ[ƒoƒ‹ŠÖ”ƒe[ƒuƒ‹ 
     841/** グローバル関数テーブルの取得 
     842 * 
     843 * @param rcvr      [in] レシーバ 
     844 * 
     845 * @return          グローバル関数テーブル 
    846846 */ 
    847847 
     
    853853 
    854854/*------------------------------------------------------------------------*/ 
    855 /** ƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^ŠÖ”ƒe[ƒuƒ‹‚̎擾 
    856  * 
    857  * @param rcvr      [in] ƒŒƒV[ƒo 
    858  * 
    859  * @return          ƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^ŠÖ”ƒe[ƒuƒ‹ 
     855/** マジックポインタ関数テーブルの取得 
     856 * 
     857 * @param rcvr      [in] レシーバ 
     858 * 
     859 * @return          マジックポインタ関数テーブル 
    860860 */ 
    861861 
     
    867867 
    868868/*------------------------------------------------------------------------*/ 
    869 /** ƒVƒ“ƒ{ƒ‹ƒe[ƒuƒ‹‚̎擾 
    870  * 
    871  * @param rcvr      [in] ƒŒƒV[ƒo 
    872  * 
    873  * @return          ƒVƒ“ƒ{ƒ‹ƒe[ƒuƒ‹ 
     869/** シンボルテーブルの取得 
     870 * 
     871 * @param rcvr      [in] レシーバ 
     872 * 
     873 * @return          シンボルテーブル 
    874874 */ 
    875875 
  • NEWT0/trunk/src/newt_core/NewtFile.c

    r56 r68  
    22/** 
    33 * @file    NewtFile.c 
    4  * @brief   ƒtƒ@ƒCƒ‹ˆ— 
     4 * @brief   ファイル処理 
    55 * 
    66 * @author  M.Nukui 
     
    1111 
    1212 
    13 /* ƒwƒbƒ_ƒtƒ@ƒCƒ‹ */ 
     13/* ヘッダファイル */ 
    1414#include <stdlib.h> 
    1515#include <string.h> 
     
    3737 
    3838 
    39 /* ’萔 */ 
     39/* 定数 */ 
    4040 
    4141enum { 
     
    4545 
    4646 
    47 /* Œ^éŒ¾ */ 
    48  
    49 /// ƒtƒ@ƒCƒ‹Šg’£Žq 
     47/* 型宣言 */ 
     48 
     49/// ファイル拡張子 
    5050typedef struct { 
    51     newtRefVar  ext;    ///< Šg’£Žq 
    52     int         type;   ///< ƒ^ƒCƒv 
     51    newtRefVar  ext;    ///< 拡張子 
     52    int         type;   ///< タイプ 
    5353} file_ext_t; 
    5454 
     
    5656#ifdef HAVE_DLOPEN 
    5757/*------------------------------------------------------------------------*/ 
    58 /** “®“Iƒ‰ƒCƒuƒ‰ƒŠ‚ðƒCƒ“ƒXƒg[ƒ‹‚·‚é 
    59  * 
    60  * @param fname     [in] ƒtƒ@ƒCƒ‹‚̃pƒX 
    61  * 
    62  * @return          “®“Iƒ‰ƒCƒuƒ‰ƒŠ‚̃fƒXƒNƒvƒŠƒ^ 
     58/** 動的ライブラリをインストールする 
     59 * 
     60 * @param fname     [in] ファイルのパス 
     61 * 
     62 * @return          動的ライブラリのデスクプリタ 
    6363 */ 
    6464 
     
    9090 
    9191/*------------------------------------------------------------------------*/ 
    92 /** ƒtƒ@ƒCƒ‹‚Ì‘¶ÝŠm”F 
    93  * 
    94  * @param path      [in] ƒtƒ@ƒCƒ‹‚̃pƒX 
    95  * 
    96  * @retval          true    ƒtƒ@ƒCƒ‹‚ª‘¶Ý‚·‚é 
    97  * @retval          false   ƒtƒ@ƒCƒ‹‚ª‘¶Ý‚µ‚È‚¢ 
     92/** ファイルの存在確認 
     93 * 
     94 * @param path      [in] ファイルのパス 
     95 * 
     96 * @retval          true    ファイルが存在する 
     97 * @retval          false   ファイルが存在しない 
    9898 */ 
    9999 
     
    116116#pragma mark - 
    117117/*------------------------------------------------------------------------*/ 
    118 /** ƒtƒ@ƒCƒ‹ƒZƒpƒŒ[ƒ^‚ð•Ô‚· 
    119  * 
    120  * @return          ƒtƒ@ƒCƒ‹ƒZƒpƒŒ[ƒ^ 
     118/** ファイルセパレータを返す 
     119 * 
     120 * @return          ファイルセパレータ 
    121121 */ 
    122122 
     
    128128 
    129129/*------------------------------------------------------------------------*/ 
    130 /** ƒz[ƒ€ƒfƒBƒŒƒNƒgƒŠ‚̃pƒX‚ðŽæ“¾ 
    131  * 
    132  * @param s         [in] ƒtƒ@ƒCƒ‹‚̃pƒX 
    133  * @param subdir    [out]ƒTƒuƒfƒBƒŒƒNƒgƒŠ 
    134  * 
    135  * @return          ƒz[ƒ€ƒfƒBƒŒƒNƒgƒŠ‚̃pƒX 
    136  * 
    137  * @note            Žæ“¾‚³‚ꂽƒz[ƒ€ƒfƒBƒŒƒNƒgƒŠ‚Ì•¶Žš—ñ‚Í free ‚·‚é•K—v‚ª‚ ‚é 
     130/** ホームディレクトリのパスを取得 
     131 * 
     132 * @param s         [in] ファイルのパス 
     133 * @param subdir    [out]サブディレクトリ 
     134 * 
     135 * @return          ホームディレクトリのパス 
     136 * 
     137 * @note            取得されたホームディレクトリの文字列は free する必要がある 
    138138 */ 
    139139 
     
    141141 
    142142char * NewtGetHomeDir(const char * s, char ** subdir) 
    143 {   // UNIX ‚̏ꍇ 
     143{   // UNIX の場合 
    144144    struct passwd * pswd = NULL; 
    145145    uint32_t    len; 
     
    184184 
    185185char * NewtGetHomeDir(const char * s, char ** subdir) 
    186 {   // Windows ‚̏ꍇ 
     186{   // Windows の場合 
    187187    return NULL; 
    188188} 
     
    192192 
    193193/*------------------------------------------------------------------------*/ 
    194 /** ƒfƒBƒŒƒNƒgƒŠ–¼‚ƃtƒ@ƒCƒ‹–¼‚©‚çƒpƒX‚ðì¬ 
    195  * 
    196  * @param s1        [in] ƒfƒBƒŒƒNƒgƒŠ–¼ 
    197  * @param s2        [in] ƒtƒ@ƒCƒ‹–¼ 
    198  * @param sep       [in] ƒtƒ@ƒCƒ‹ƒZƒpƒŒ[ƒ^ 
    199  * 
    200  * @return          ì¬‚³‚ꂽƒpƒX 
    201  * 
    202  * @note            Žæ“¾‚³‚ꂽƒz[ƒ€ƒfƒBƒŒƒNƒgƒŠ‚Ì•¶Žš—ñ‚Í free ‚·‚é•K—v‚ª‚ ‚é 
     194/** ディレクトリ名とファイル名からパスを作成 
     195 * 
     196 * @param s1        [in] ディレクトリ名 
     197 * @param s2        [in] ファイル名 
     198 * @param sep       [in] ファイルセパレータ 
     199 * 
     200 * @return          作成されたパス 
     201 * 
     202 * @note            取得されたホームディレクトリの文字列は free する必要がある 
    203203 */ 
    204204 
     
    228228 
    229229/*------------------------------------------------------------------------*/ 
    230 /** ‘Š‘ÎƒpƒX‚ðâ‘΃pƒX‚É“WŠJ‚·‚é 
    231  * 
    232  * @param s         [i/o]‘Š‘ÎƒpƒX¨â‘΃pƒX 
    233  * 
    234  * @return          â‘΃pƒX 
     230/** 相対パスを絶対パスに展開する 
     231 * 
     232 * @param s         [i/o]相対パス→絶対パス 
     233 * 
     234 * @return          絶対パス 
    235235 */ 
    236236 
     
    283283 
    284284/*------------------------------------------------------------------------*/ 
    285 /** ‘Š‘ÎƒpƒX‚ðâ‘΃pƒX‚É“WŠJ‚·‚é 
    286  * 
    287  * @param s         [in] ‘Š‘ÎƒpƒXiC•¶Žš—ñj 
    288  * 
    289  * @return          â‘΃pƒXi•¶Žš—ñƒIƒuƒWƒFƒNƒgj 
    290  * 
    291  * @note            ~, ~user ‚̓z[ƒ€ƒfƒBƒŒƒNƒgƒŠ‚É“WŠJ‚³‚ê‚é 
     285/** 相対パスを絶対パスに展開する 
     286 * 
     287 * @param s         [in] 相対パス(C文字列) 
     288 * 
     289 * @return          絶対パス(文字列オブジェクト) 
     290 * 
     291 * @note            ~, ~user はホームディレクトリに展開される 
    292292 */ 
    293293 
     
    353353#pragma mark - 
    354354/*------------------------------------------------------------------------*/ 
    355 /** ƒpƒX‚©‚çƒtƒ@ƒCƒ‹–¼‚ðŽæo‚· 
    356  * 
    357  * @param s         [in] ƒpƒX‚ւ̃|ƒCƒ“ƒ^ 
    358  * @param len       [in] ƒpƒX‚Ì•¶Žš” 
    359  * 
    360  * @return          ƒtƒ@ƒCƒ‹–¼ 
     355/** パスからファイル名を取出す 
     356 * 
     357 * @param s         [in] パスへのポインタ 
     358 * @param len       [in] パスの文字数 
     359 * 
     360 * @return          ファイル名 
    361361 */ 
    362362 
     
    384384#pragma mark - 
    385385/*------------------------------------------------------------------------*/ 
    386 /** ƒ\[ƒXƒtƒ@ƒCƒ‹‚̃Rƒ“ƒpƒCƒ‹ 
    387  * 
    388  * @param rcvr      [in] ƒŒƒV[ƒo 
    389  * @param r         [in] ƒRƒ“ƒpƒCƒ‹‚·‚éƒ\[ƒXƒtƒ@ƒCƒ‹‚̃pƒX 
    390  * 
    391  * @return          ˆø” 0 ‚̊֐”ƒIƒuƒWƒFƒNƒg 
     386/** ソースファイルのコンパイル 
     387 * 
     388 * @param rcvr      [in] レシーバ 
     389 * @param r         [in] コンパイルするソースファイルのパス 
     390 * 
     391 * @return          引数 0 の関数オブジェクト 
    392392 */ 
    393393 
     
    406406 
    407407/*------------------------------------------------------------------------*/ 
    408 /** ƒ‰ƒCƒuƒ‰ƒŠ‚̃[ƒh 
    409  * 
    410  * @param rcvr      [in] ƒŒƒV[ƒo 
    411  * @param r         [in] ƒ[ƒh‚·‚郉ƒCƒuƒ‰ƒŠ‚̃pƒX 
    412  * 
    413  * @return          “®“Iƒ‰ƒCƒuƒ‰ƒŠ‚̃fƒXƒNƒvƒŠƒ^ 
     408/** ライブラリのロード 
     409 * 
     410 * @param rcvr      [in] レシーバ 
     411 * @param r         [in] ロードするライブラリのパス 
     412 * 
     413 * @return          動的ライブラリのデスクプリタ 
    414414 */ 
    415415 
     
    451451 
    452452/*------------------------------------------------------------------------*/ 
    453 /** ƒ\[ƒXƒtƒ@ƒCƒ‹‚̃[ƒh 
    454  * 
    455  * @param rcvr      [in] ƒŒƒV[ƒo 
    456  * @param r         [in] ƒ[ƒh‚·‚éƒ\[ƒXƒtƒ@ƒCƒ‹‚̃pƒX 
    457  * 
    458  * @return          ŽÀsŒ‹‰Ê‚̃IƒuƒWƒFƒNƒg 
     453/** ソースファイルのロード 
     454 * 
     455 * @param rcvr      [in] レシーバ 
     456 * @param r         [in] ロードするソースファイルのパス 
     457 * 
     458 * @return          実行結果のオブジェクト 
    459459 */ 
    460460 
     
    474474 
    475475/*------------------------------------------------------------------------*/ 
    476 /** ƒ‰ƒCƒuƒ‰ƒŠ‚Ì—v‹ 
    477  * 
    478  * @param r         [in] ƒ[ƒh‚·‚郉ƒCƒuƒ‰ƒŠ‚̃Vƒ“ƒ{ƒ‹•¶Žš—ñ 
    479  * 
    480  * @return          ƒ[ƒh‚³‚ꂽƒ‰ƒCƒuƒ‰ƒŠ‚̃Vƒ“ƒ{ƒ‹ 
    481  * 
    482  * @note            ƒVƒ“ƒ{ƒ‹‚É‚æ‚胉ƒCƒuƒ‰ƒŠ‚ð—v‹‚·‚éB 
    483  *                  Šg’£Žq‚Í•K—v‚È‚¢B“K‹Xƒ‰ƒCƒuƒ‰ƒŠƒpƒX‚É‚æ‚茟õ‚³‚ê‚éB 
    484  *                  ˆê“xƒ[ƒh‚³‚ꂽƒ‰ƒCƒuƒ‰ƒŠ‚͓Ǎž‚Ü‚ê‚È‚¢B 
    485  *                  ƒ‰ƒCƒuƒ‰ƒŠ‚ªŒ©‚‚©‚ç‚È‚­‚Ä‚à—áŠO‚Í”­¶‚µ‚È‚¢B 
     476/** ライブラリの要求 
     477 * 
     478 * @param r         [in] ロードするライブラリのシンボル文字列 
     479 * 
     480 * @return          ロードされたライブラリのシンボル 
     481 * 
     482 * @note            シンボルによりライブラリを要求する。 
     483 *                  拡張子は必要ない。適宜ライブラリパスにより検索される。 
     484 *                  一度ロードされたライブラリは読込まれない。 
     485 *                  ライブラリが見つからなくても例外は発生しない。 
    486486 */ 
    487487 
     
    590590 
    591591/*------------------------------------------------------------------------*/ 
    592 /** ƒ‰ƒCƒuƒ‰ƒŠ‚Ì—v‹ 
    593  * 
    594  * @param rcvr      [in] ƒŒƒV[ƒo 
    595  * @param r         [in] ƒ[ƒh‚·‚郉ƒCƒuƒ‰ƒŠ‚̃Vƒ“ƒ{ƒ‹•¶Žš—ñ 
    596  * 
    597  * @return          ƒ[ƒh‚³‚ꂽƒ‰ƒCƒuƒ‰ƒŠ‚̃Vƒ“ƒ{ƒ‹ 
    598  * 
    599  * @note            ƒVƒ“ƒ{ƒ‹‚É‚æ‚胉ƒCƒuƒ‰ƒŠ‚ð—v‹‚·‚éB 
    600  *                  Šg’£Žq‚Í•K—v‚È‚¢B“K‹Xƒ‰ƒCƒuƒ‰ƒŠƒpƒX‚É‚æ‚茟õ‚³‚ê‚éB 
    601  *                  ˆê“xƒ[ƒh‚³‚ꂽƒ‰ƒCƒuƒ‰ƒŠ‚͓Ǎž‚Ü‚ê‚È‚¢B 
     592/** ライブラリの要求 
     593 * 
     594 * @param rcvr      [in] レシーバ 
     595 * @param r         [in] ロードするライブラリのシンボル文字列 
     596 * 
     597 * @return          ロードされたライブラリのシンボル 
     598 * 
     599 * @note            シンボルによりライブラリを要求する。 
     600 *                  拡張子は必要ない。適宜ライブラリパスにより検索される。 
     601 *                  一度ロードされたライブラリは読込まれない。 
    602602 */ 
    603603 
     
    617617#pragma mark - 
    618618/*------------------------------------------------------------------------*/ 
    619 /** ƒtƒ@ƒCƒ‹‚Ì‘¶ÝŠm”F 
    620  * 
    621  * @param rcvr      [in] ƒŒƒV[ƒo 
    622  * @param r         [in] ƒtƒ@ƒCƒ‹‚̃pƒX 
    623  * 
    624  * @retval          true    ƒtƒ@ƒCƒ‹‚ª‘¶Ý‚·‚é 
    625  * @retval          false   ƒtƒ@ƒCƒ‹‚ª‘¶Ý‚µ‚È‚¢ 
    626  * 
    627  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     619/** ファイルの存在確認 
     620 * 
     621 * @param rcvr      [in] レシーバ 
     622 * @param r         [in] ファイルのパス 
     623 * 
     624 * @retval          true    ファイルが存在する 
     625 * @retval          false   ファイルが存在しない 
     626 * 
     627 * @note            スクリプトからの呼出し用 
    628628 */ 
    629629 
     
    639639#pragma mark - 
    640640/*------------------------------------------------------------------------*/ 
    641 /** ƒpƒX‚©‚çƒfƒBƒŒƒNƒgƒŠ–¼‚ðŽæo‚· 
    642  * 
    643  * @param rcvr      [in] ƒŒƒV[ƒo 
    644  * @param r         [in] ƒtƒ@ƒCƒ‹‚̃pƒX 
    645  * 
    646  * @return          ƒfƒBƒŒƒNƒgƒŠ–¼ 
     641/** パスからディレクトリ名を取出す 
     642 * 
     643 * @param rcvr      [in] レシーバ 
     644 * @param r         [in] ファイルのパス 
     645 * 
     646 * @return          ディレクトリ名 
    647647 */ 
    648648 
     
    674674 
    675675/*------------------------------------------------------------------------*/ 
    676 /** ƒpƒX‚©‚çƒtƒ@ƒCƒ‹–¼‚ðŽæo‚· 
    677  * 
    678  * @param rcvr      [in] ƒŒƒV[ƒo 
    679  * @param r         [in] ƒtƒ@ƒCƒ‹‚̃pƒX 
    680  * 
    681  * @return          ƒtƒ@ƒCƒ‹–¼ 
    682  * 
    683  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     676/** パスからファイル名を取出す 
     677 * 
     678 * @param rcvr      [in] レシーバ 
     679 * @param r         [in] ファイルのパス 
     680 * 
     681 * @return          ファイル名 
     682 * 
     683 * @note            スクリプトからの呼出し用 
    684684 */ 
    685685 
     
    701701 
    702702/*------------------------------------------------------------------------*/ 
    703 /** ƒfƒBƒŒƒNƒgƒŠ–¼‚ƃtƒ@ƒCƒ‹–¼‚©‚çƒpƒX‚ðì¬ 
    704  * 
    705  * @param rcvr      [in] ƒŒƒV[ƒo 
    706  * @param r1        [in] ƒfƒBƒŒƒNƒgƒŠ–¼ 
    707  * @param r2        [in] ƒtƒ@ƒCƒ‹–¼ 
    708  * 
    709  * @return          ì¬‚³‚ꂽƒpƒX 
     703/** ディレクトリ名とファイル名からパスを作成 
     704 * 
     705 * @param rcvr      [in] レシーバ 
     706 * @param r1        [in] ディレクトリ名 
     707 * @param r2        [in] ファイル名 
     708 * 
     709 * @return          作成されたパス 
    710710 */ 
    711711 
     
    723723 
    724724/*------------------------------------------------------------------------*/ 
    725 /** ‘Š‘ÎƒpƒX‚ðâ‘΃pƒX‚É“WŠJ‚·‚é 
    726  * 
    727  * @param rcvr      [in] ƒŒƒV[ƒo 
    728  * @param r         [in] ‘Š‘ÎƒpƒX 
    729  * 
    730  * @return          â‘΃pƒX 
    731  * 
    732  * @note            ~, ~user ‚̓z[ƒ€ƒfƒBƒŒƒNƒgƒŠ‚É“WŠJ‚³‚ê‚é 
    733  *                  ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     725/** 相対パスを絶対パスに展開する 
     726 * 
     727 * @param rcvr      [in] レシーバ 
     728 * @param r         [in] 相対パス 
     729 * 
     730 * @return          絶対パス 
     731 * 
     732 * @note            ~, ~user はホームディレクトリに展開される 
     733 *                  スクリプトからの呼出し用 
    734734 */ 
    735735 
  • NEWT0/trunk/src/newt_core/NewtFns.c

    r28 r68  
    22/** 
    33 * @file    NewtFns.c 
    4  * @brief   ‘gž‚݊֐” 
     4 * @brief   組込み関数 
    55 * 
    66 * @author  M.Nukui 
     
    1111 
    1212 
    13 /* ƒwƒbƒ_ƒtƒ@ƒCƒ‹ */ 
     13/* ヘッダファイル */ 
    1414#include <string.h> 
    1515 
     
    2323 
    2424 
    25 /* ŠÖ”ƒvƒƒgƒ^ƒCƒv */ 
     25/* 関数プロトタイプ */ 
    2626static newtRef      NewtRefTypeToClass(uint16_t type); 
    2727static newtRef      NewtObjClassOf(newtRefArg r); 
     
    3232#pragma mark - 
    3333/*------------------------------------------------------------------------*/ 
    34 /** ƒvƒƒgŒp³‚ŃVƒ“ƒ{ƒ‹‚ðŒŸõiƒtƒŒ[ƒ€‚ðŒ©‚Â‚¯‚éj 
    35  * 
    36  * @param start     [in] ŠJŽnƒIƒuƒWƒFƒNƒg 
    37  * @param name      [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    38  * 
    39  * @return          ŒŸõ‚³‚ꂽƒIƒuƒWƒFƒNƒg‚ðŽ‚ÂƒtƒŒ[ƒ€ 
     34/** プロト継承でシンボルを検索(フレームを見つける) 
     35 * 
     36 * @param start     [in] 開始オブジェクト 
     37 * @param name      [in] シンボルオブジェクト 
     38 * 
     39 * @return          検索されたオブジェクトを持つフレーム 
    4040 */ 
    4141 
     
    6262 
    6363/*------------------------------------------------------------------------*/ 
    64 /** ƒvƒƒgŒp³‚ŃVƒ“ƒ{ƒ‹‚ðŒŸõ 
    65  * 
    66  * @param start     [in] ŠJŽnƒIƒuƒWƒFƒNƒg 
    67  * @param name      [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    68  * 
    69  * @return          ŒŸõ‚³‚ꂽƒIƒuƒWƒFƒNƒg 
     64/** プロト継承でシンボルを検索 
     65 * 
     66 * @param start     [in] 開始オブジェクト 
     67 * @param name      [in] シンボルオブジェクト 
     68 * 
     69 * @return          検索されたオブジェクト 
    7070 */ 
    7171 
     
    8484 
    8585/*------------------------------------------------------------------------*/ 
    86 /** ƒŒƒLƒVƒJƒ‹ƒXƒR[ƒv‚ŃVƒ“ƒ{ƒ‹‚ðŒŸõ 
    87  * 
    88  * @param start     [in] ŠJŽnƒIƒuƒWƒFƒNƒg 
    89  * @param name      [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    90  * 
    91  * @return          ŒŸõ‚³‚ꂽƒIƒuƒWƒFƒNƒg 
     86/** レキシカルスコープでシンボルを検索 
     87 * 
     88 * @param start     [in] 開始オブジェクト 
     89 * @param name      [in] シンボルオブジェクト 
     90 * 
     91 * @return          検索されたオブジェクト 
    9292 */ 
    9393 
     
    114114 
    115115/*------------------------------------------------------------------------*/ 
    116 /** ƒvƒƒgAƒyƒAƒŒƒ“ƒgŒp³‚ŃVƒ“ƒ{ƒ‹‚ðŒŸõiƒtƒŒ[ƒ€‚ðŒ©‚Â‚¯‚éj 
    117  * 
    118  * @param start     [in] ŠJŽnƒIƒuƒWƒFƒNƒg 
    119  * @param name      [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    120  * 
    121  * @return          ŒŸõ‚³‚ꂽƒIƒuƒWƒFƒNƒg‚ðŽ‚ÂƒtƒŒ[ƒ€ 
     116/** プロト、ペアレント継承でシンボルを検索(フレームを見つける) 
     117 * 
     118 * @param start     [in] 開始オブジェクト 
     119 * @param name      [in] シンボルオブジェクト 
     120 * 
     121 * @return          検索されたオブジェクトを持つフレーム 
    122122 */ 
    123123 
     
    155155 
    156156/*------------------------------------------------------------------------*/ 
    157 /** ƒvƒƒgAƒyƒAƒŒƒ“ƒgŒp³‚ŃVƒ“ƒ{ƒ‹‚ðŒŸõ 
    158  * 
    159  * @param start     [in] ŠJŽnƒIƒuƒWƒFƒNƒg 
    160  * @param name      [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    161  * 
    162  * @return          ŒŸõ‚³‚ꂽƒIƒuƒWƒFƒNƒg 
     157/** プロト、ペアレント継承でシンボルを検索 
     158 * 
     159 * @param start     [in] 開始オブジェクト 
     160 * @param name      [in] シンボルオブジェクト 
     161 * 
     162 * @return          検索されたオブジェクト 
    163163 */ 
    164164 
     
    178178#pragma mark - 
    179179/*------------------------------------------------------------------------*/ 
    180 /** ƒVƒ“ƒ{ƒ‹ƒe[ƒuƒ‹‚©‚çƒVƒ“ƒ{ƒ‹‚ðŒŸõ 
    181  * 
    182  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒe[ƒuƒ‹ 
    183  * @param name      [in] ƒVƒ“ƒ{ƒ‹–¼ 
    184  * 
    185  * @return          ŒŸõ‚³‚ꂽƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
     180/** シンボルテーブルからシンボルを検索 
     181 * 
     182 * @param r         [in] シンボルテーブル 
     183 * @param name      [in] シンボル名 
     184 * 
     185 * @return          検索されたシンボルオブジェクト 
    186186 */ 
    187187 
     
    193193 
    194194/*------------------------------------------------------------------------*/ 
    195 /** —áŠO‚𔭐¶ 
    196  * 
    197  * @param rcvr      [in] ƒŒƒV[ƒo 
    198  * @param name      [in] —áŠOƒVƒ“ƒ{ƒ‹ 
    199  * @param data      [in] —áŠOƒf[ƒ^ 
     195/** 例外を発生 
     196 * 
     197 * @param rcvr      [in] レシーバ 
     198 * @param name      [in] 例外シンボル 
     199 * @param data      [in] 例外データ 
    200200 * 
    201201 * @retval          NIL 
    202202 * 
    203  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     203 * @note            スクリプトからの呼出し用 
    204204 */ 
    205205 
     
    212212 
    213213/*------------------------------------------------------------------------*/ 
    214 /** rethrow ‚·‚é 
    215  * 
    216  * @param rcvr      [in] ƒŒƒV[ƒo 
     214/** rethrow する 
     215 * 
     216 * @param rcvr      [in] レシーバ 
    217217 * 
    218218 * @retval          NIL 
    219219 * 
    220  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     220 * @note            スクリプトからの呼出し用 
    221221 */ 
    222222 
     
    229229 
    230230/*------------------------------------------------------------------------*/ 
    231 /** ƒIƒuƒWƒFƒNƒg‚ðƒNƒ[ƒ“•¡»‚·‚é 
    232  * 
    233  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    234  * 
    235  * @return          ƒNƒ[ƒ“•¡»‚³‚ꂽƒIƒuƒWƒFƒNƒg 
     231/** オブジェクトをクローン複製する 
     232 * 
     233 * @param r         [in] オブジェクト 
     234 * 
     235 * @return          クローン複製されたオブジェクト 
    236236 */ 
    237237 
     
    246246 
    247247/*------------------------------------------------------------------------*/ 
    248 /** ƒIƒuƒWƒFƒNƒg‚̐[‚¢ƒNƒ[ƒ“•¡»‚ð‚·‚éiƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^‚͒ǐՂµ‚È‚¢j 
    249  * 
    250  * @param rcvr      [in] ƒŒƒV[ƒo 
    251  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    252  * 
    253  * @return          ƒNƒ[ƒ“•¡»‚³‚ꂽƒIƒuƒWƒFƒNƒg 
     248/** オブジェクトの深いクローン複製をする(マジックポインタは追跡しない) 
     249 * 
     250 * @param rcvr      [in] レシーバ 
     251 * @param r         [in] オブジェクト 
     252 * 
     253 * @return          クローン複製されたオブジェクト 
    254254 */ 
    255255 
     
    280280 
    281281/*------------------------------------------------------------------------*/ 
    282 /** ƒIƒuƒWƒFƒNƒg‚Ì’·‚³‚ðŽæ“¾ 
    283  * 
    284  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    285  * 
    286  * @return          ƒIƒuƒWƒFƒNƒg‚Ì’·‚³ 
    287  * 
    288  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     282/** オブジェクトの長さを取得 
     283 * 
     284 * @param r         [in] オブジェクト 
     285 * 
     286 * @return          オブジェクトの長さ 
     287 * 
     288 * @note            スクリプトからの呼出し用 
    289289 */ 
    290290 
     
    296296 
    297297/*------------------------------------------------------------------------*/ 
    298 /** ƒIƒuƒWƒFƒNƒg‚́i[‚¢j’·‚³‚ðŽæ“¾ 
    299  * 
    300  * @param rcvr      [in] ƒŒƒV[ƒo 
    301  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    302  * 
    303  * @return          ƒIƒuƒWƒFƒNƒg‚Ì’·‚³ 
    304  * 
    305  * @note            ƒtƒŒ[ƒ€‚̏ꍇ‚̓vƒƒgŒp³‚Å’·‚³‚ðŒvŽZ‚·‚é 
    306  *                  ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     298/** オブジェクトの(深い)長さを取得 
     299 * 
     300 * @param rcvr      [in] レシーバ 
     301 * @param r         [in] オブジェクト 
     302 * 
     303 * @return          オブジェクトの長さ 
     304 * 
     305 * @note            フレームの場合はプロト継承で長さを計算する 
     306 *                  スクリプトからの呼出し用 
    307307 */ 
    308308 
     
    314314 
    315315/*------------------------------------------------------------------------*/ 
    316 /** ƒIƒuƒWƒFƒNƒg‚́i[‚¢j’·‚³‚ðŽæ“¾ 
    317  * 
    318  * @param rcvr      [in] ƒŒƒV[ƒo 
    319  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    320  * @param len       [in] ’·‚³ 
    321  * 
    322  * @return          ƒIƒuƒWƒFƒNƒg‚Ì’·‚³ 
    323  * 
    324  * @note            ƒtƒŒ[ƒ€‚̏ꍇ‚̓vƒƒgŒp³‚Å’·‚³‚ðŒvŽZ‚·‚é 
    325  *                  ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     316/** オブジェクトの(深い)長さを取得 
     317 * 
     318 * @param rcvr      [in] レシーバ 
     319 * @param r         [in] オブジェクト 
     320 * @param len       [in] 長さ 
     321 * 
     322 * @return          オブジェクトの長さ 
     323 * 
     324 * @note            フレームの場合はプロト継承で長さを計算する 
     325 *                  スクリプトからの呼出し用 
    326326 */ 
    327327 
     
    361361 
    362362/*------------------------------------------------------------------------*/ 
    363 /** ƒtƒŒ[ƒ€“à‚̃Xƒƒbƒg‚Ì—L–³‚𒲂ׂé 
    364  * 
    365  * @param rcvr      [in] ƒŒƒV[ƒo 
    366  * @param frame     [in] ƒtƒŒ[ƒ€ 
    367  * @param slot      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    368  * 
    369  * @retval          TRUE    ƒXƒƒbƒg‚ª‘¶Ý‚·‚é 
    370  * @retval          NIL     ƒXƒƒbƒg‚ª‘¶Ý‚µ‚È‚¢ 
    371  * 
    372  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     363/** フレーム内のスロットの有無を調べる 
     364 * 
     365 * @param rcvr      [in] レシーバ 
     366 * @param frame     [in] フレーム 
     367 * @param slot      [in] スロットシンボル 
     368 * 
     369 * @retval          TRUE    スロットが存在する 
     370 * @retval          NIL     スロットが存在しない 
     371 * 
     372 * @note            スクリプトからの呼出し用 
    373373 */ 
    374374 
     
    380380 
    381381/*------------------------------------------------------------------------*/ 
    382 /** ƒtƒŒ[ƒ€‚©‚çƒXƒƒbƒg‚Ì’l‚ðŽæ“¾ 
    383  * 
    384  * @param rcvr      [in] ƒŒƒV[ƒo 
    385  * @param frame     [in] ƒtƒŒ[ƒ€ 
    386  * @param slot      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    387  * 
    388  * @return          ƒXƒƒbƒg‚Ì’l 
     382/** フレームからスロットの値を取得 
     383 * 
     384 * @param rcvr      [in] レシーバ 
     385 * @param frame     [in] フレーム 
     386 * @param slot      [in] スロットシンボル 
     387 * 
     388 * @return          スロットの値 
    389389 */ 
    390390 
     
    403403 
    404404/*------------------------------------------------------------------------*/ 
    405 /** ƒtƒŒ[ƒ€‚ɃXƒƒbƒg‚Ì’l‚ðƒZƒbƒg‚·‚é 
    406  * 
    407  * @param rcvr      [in] ƒŒƒV[ƒo 
    408  * @param frame     [in] ƒtƒŒ[ƒ€ 
    409  * @param slot      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    410  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    411  * 
    412  * @return          ’lƒIƒuƒWƒFƒNƒg 
     405/** フレームにスロットの値をセットする 
     406 * 
     407 * @param rcvr      [in] レシーバ 
     408 * @param frame     [in] フレーム 
     409 * @param slot      [in] スロットシンボル 
     410 * @param v         [in] 値オブジェクト 
     411 * 
     412 * @return          値オブジェクト 
    413413 */ 
    414414 
     
    432432 
    433433/*------------------------------------------------------------------------*/ 
    434 /** ƒtƒŒ[ƒ€‚©‚çƒXƒƒbƒg‚ðíœ‚·‚é 
    435  * 
    436  * @param rcvr      [in] ƒŒƒV[ƒo 
    437  * @param frame     [in] ƒtƒŒ[ƒ€ 
    438  * @param slot      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    439  * 
    440  * @return          ƒtƒŒ[ƒ€ 
     434/** フレームからスロットを削除する 
     435 * 
     436 * @param rcvr      [in] レシーバ 
     437 * @param frame     [in] フレーム 
     438 * @param slot      [in] スロットシンボル 
     439 * 
     440 * @return          フレーム 
    441441 */ 
    442442 
     
    453453 
    454454/*------------------------------------------------------------------------*/ 
    455 /** ”z—ñ‚É’l‚ðƒZƒbƒg‚·‚é 
    456  * 
    457  * @param r         [in] ”z—ñƒIƒuƒWƒFƒNƒg 
    458  * @param p         [in] ˆÊ’u 
    459  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    460  * 
    461  * @return          ’lƒIƒuƒWƒFƒNƒg 
     455/** 配列に値をセットする 
     456 * 
     457 * @param r         [in] 配列オブジェクト 
     458 * @param p         [in] 位置 
     459 * @param v         [in] 値オブジェクト 
     460 * 
     461 * @return          値オブジェクト 
    462462 */ 
    463463 
     
    472472 
    473473/*------------------------------------------------------------------------*/ 
    474 /** ƒIƒuƒWƒFƒNƒg“à‚̃AƒNƒZƒXƒpƒX‚Ì—L–³‚𒲂ׂé 
    475  * 
    476  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    477  * @param p         [in] ƒAƒNƒZƒXƒpƒX 
    478  * 
    479  * @retval          TRUE    ƒAƒNƒZƒXƒpƒX‚ª‘¶Ý‚·‚é 
    480  * @retval          NIL     ƒAƒNƒZƒXƒpƒX‚ª‘¶Ý‚µ‚È‚¢ 
    481  * 
    482  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     474/** オブジェクト内のアクセスパスの有無を調べる 
     475 * 
     476 * @param r         [in] オブジェクト 
     477 * @param p         [in] アクセスパス 
     478 * 
     479 * @retval          TRUE    アクセスパスが存在する 
     480 * @retval          NIL     アクセスパスが存在しない 
     481 * 
     482 * @note            スクリプトからの呼出し用 
    483483 */ 
    484484 
     
    490490 
    491491/*------------------------------------------------------------------------*/ 
    492 /** ƒIƒuƒWƒFƒNƒg‚̃AƒNƒZƒXƒpƒX‚Ì’l‚ðŽæ“¾ 
    493  * 
    494  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    495  * @param p         [in] ƒAƒNƒZƒXƒpƒX 
    496  * 
    497  * @return          ’lƒIƒuƒWƒFƒNƒg 
    498  * 
    499  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     492/** オブジェクトのアクセスパスの値を取得 
     493 * 
     494 * @param r         [in] オブジェクト 
     495 * @param p         [in] アクセスパス 
     496 * 
     497 * @return          値オブジェクト 
     498 * 
     499 * @note            スクリプトからの呼出し用 
    500500 */ 
    501501 
     
    507507 
    508508/*------------------------------------------------------------------------*/ 
    509 /** ƒIƒuƒWƒFƒNƒg‚̃AƒNƒZƒXƒpƒX‚É’l‚ðƒZƒbƒg‚·‚é 
    510  * 
    511  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    512  * @param p         [in] ƒAƒNƒZƒXƒpƒX 
    513  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    514  * 
    515  * @return          ’lƒIƒuƒWƒFƒNƒg 
     509/** オブジェクトのアクセスパスに値をセットする 
     510 * 
     511 * @param r         [in] オブジェクト 
     512 * @param p         [in] アクセスパス 
     513 * @param v         [in] 値オブジェクト 
     514 * 
     515 * @return          値オブジェクト 
    516516 */ 
    517517 
     
    534534 
    535535/*------------------------------------------------------------------------*/ 
    536 /** ƒIƒuƒWƒFƒNƒg‚ÌŽw’肳‚ꂽˆÊ’u‚©‚ç’l‚ðŽæ“¾ 
    537  * 
    538  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    539  * @param p         [in] ˆÊ’u 
    540  * 
    541  * @return          ’lƒIƒuƒWƒFƒNƒg 
    542  * 
    543  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     536/** オブジェクトの指定された位置から値を取得 
     537 * 
     538 * @param r         [in] オブジェクト 
     539 * @param p         [in] 位置 
     540 * 
     541 * @return          値オブジェクト 
     542 * 
     543 * @note            スクリプトからの呼出し用 
    544544 */ 
    545545 
     
    554554 
    555555/*------------------------------------------------------------------------*/ 
    556 /** ƒIƒuƒWƒFƒNƒg‚ÌŽw’肳‚ꂽˆÊ’u‚É’l‚ðƒZƒbƒg‚·‚é 
    557  * 
    558  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    559  * @param p         [in] ˆÊ’u 
    560  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    561  * 
    562  * @return          ’lƒIƒuƒWƒFƒNƒg 
    563  * 
    564  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     556/** オブジェクトの指定された位置に値をセットする 
     557 * 
     558 * @param r         [in] オブジェクト 
     559 * @param p         [in] 位置 
     560 * @param v         [in] 値オブジェクト 
     561 * 
     562 * @return          値オブジェクト 
     563 * 
     564 * @note            スクリプトからの呼出し用 
    565565 */ 
    566566 
     
    575575 
    576576/*------------------------------------------------------------------------*/ 
    577 /** ƒvƒƒgEƒyƒAƒŒƒ“ƒgŒp³‚ŃtƒŒ[ƒ€“à‚̃Xƒƒbƒg‚Ì—L–³‚𒲂ׂé 
    578  * 
    579  * @param rcvr      [in] ƒŒƒV[ƒo 
    580  * @param r         [in] ƒtƒŒ[ƒ€ 
    581  * @param name      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    582  * 
    583  * @retval          TRUE    ƒXƒƒbƒg‚ª‘¶Ý‚·‚é 
    584  * @retval          NIL     ƒXƒƒbƒg‚ª‘¶Ý‚µ‚È‚¢ 
    585  * 
    586  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     577/** プロト・ペアレント継承でフレーム内のスロットの有無を調べる 
     578 * 
     579 * @param rcvr      [in] レシーバ 
     580 * @param r         [in] フレーム 
     581 * @param name      [in] スロットシンボル 
     582 * 
     583 * @retval          TRUE    スロットが存在する 
     584 * @retval          NIL     スロットが存在しない 
     585 * 
     586 * @note            スクリプトからの呼出し用 
    587587 */ 
    588588 
     
    594594 
    595595/*------------------------------------------------------------------------*/ 
    596 /** ƒvƒƒgEƒyƒAƒŒƒ“ƒgŒp³‚ŃtƒŒ[ƒ€‚©‚çƒXƒƒbƒg‚Ì’l‚ðŽæ“¾ 
    597  * 
    598  * @param rcvr      [in] ƒŒƒV[ƒo 
    599  * @param frame     [in] ƒtƒŒ[ƒ€ 
    600  * @param slot      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    601  * 
    602  * @return          ƒXƒƒbƒg‚Ì’l 
    603  * 
    604  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     596/** プロト・ペアレント継承でフレームからスロットの値を取得 
     597 * 
     598 * @param rcvr      [in] レシーバ 
     599 * @param frame     [in] フレーム 
     600 * @param slot      [in] スロットシンボル 
     601 * 
     602 * @return          スロットの値 
     603 * 
     604 * @note            スクリプトからの呼出し用 
    605605 */ 
    606606 
     
    612612 
    613613/*------------------------------------------------------------------------*/ 
    614 /** ƒvƒƒgEƒyƒAƒŒƒ“ƒgŒp³‚ŃtƒŒ[ƒ€‚©‚çƒXƒƒbƒg‚Ì’l‚ðŽæ“¾ 
    615  * 
    616  * @param rcvr      [in] ƒŒƒV[ƒo 
    617  * @param frame     [in] ƒtƒŒ[ƒ€ 
    618  * @param slot      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    619  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    620  * 
    621  * @return          ’lƒIƒuƒWƒFƒNƒg 
    622  * 
    623  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     614/** プロト・ペアレント継承でフレームからスロットの値を取得 
     615 * 
     616 * @param rcvr      [in] レシーバ 
     617 * @param frame     [in] フレーム 
     618 * @param slot      [in] スロットシンボル 
     619 * @param v         [in] 値オブジェクト 
     620 * 
     621 * @return          値オブジェクト 
     622 * 
     623 * @note            スクリプトからの呼出し用 
    624624 */ 
    625625 
     
    634634 
    635635/*------------------------------------------------------------------------*/ 
    636 /** •ϐ”‚Ì—L–³‚𒲂ׂé 
    637  * 
    638  * @param rcvr      [in] ƒŒƒV[ƒo 
    639  * @param name      [in] •ϐ”–¼ƒVƒ“ƒ{ƒ‹ 
    640  * 
    641  * @retval          TRUE    ƒXƒƒbƒg‚ª‘¶Ý‚·‚é 
    642  * @retval          NIL     ƒXƒƒbƒg‚ª‘¶Ý‚µ‚È‚¢ 
    643  * 
    644  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     636/** 変数の有無を調べる 
     637 * 
     638 * @param rcvr      [in] レシーバ 
     639 * @param name      [in] 変数名シンボル 
     640 * 
     641 * @retval          TRUE    スロットが存在する 
     642 * @retval          NIL     スロットが存在しない 
     643 * 
     644 * @note            スクリプトからの呼出し用 
    645645 */ 
    646646 
     
    653653#pragma mark - 
    654654/*------------------------------------------------------------------------*/ 
    655 /** ƒIƒuƒWƒFƒNƒgƒ^ƒCƒv‚ð‘Ήž‚·‚éƒNƒ‰ƒXƒVƒ“ƒ{ƒ‹‚ɕϊ·‚·‚é 
    656  * 
    657  * @param type      [in] ƒIƒuƒWƒFƒNƒgƒ^ƒCƒv 
    658  * 
    659  * @return          ƒNƒ‰ƒXƒVƒ“ƒ{ƒ‹ 
     655/** オブジェクトタイプを対応するクラスシンボルに変換する 
     656 * 
     657 * @param type      [in] オブジェクトタイプ 
     658 * 
     659 * @return          クラスシンボル 
    660660 */ 
    661661 
     
    715715 
    716716/*------------------------------------------------------------------------*/ 
    717 /** ƒIƒuƒWƒFƒNƒg‚̃Nƒ‰ƒXƒVƒ“ƒ{ƒ‹‚ðŽæ“¾ 
    718  * 
    719  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    720  * 
    721  * @return          ƒNƒ‰ƒXƒVƒ“ƒ{ƒ‹ 
     717/** オブジェクトのクラスシンボルを取得 
     718 * 
     719 * @param r         [in] オブジェクト 
     720 * 
     721 * @return          クラスシンボル 
    722722 */ 
    723723 
     
    755755 
    756756/*------------------------------------------------------------------------*/ 
    757 /** ƒIƒuƒWƒFƒNƒg‚̃Nƒ‰ƒXƒVƒ“ƒ{ƒ‹‚ðƒZƒbƒg‚·‚é 
    758  * 
    759  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    760  * @param c         [in] ƒNƒ‰ƒXƒVƒ“ƒ{ƒ‹ 
    761  * 
    762  * @return          ƒIƒuƒWƒFƒNƒg 
     757/** オブジェクトのクラスシンボルをセットする 
     758 * 
     759 * @param r         [in] オブジェクト 
     760 * @param c         [in] クラスシンボル 
     761 * 
     762 * @return          オブジェクト 
    763763 */ 
    764764 
     
    792792 
    793793/*------------------------------------------------------------------------*/ 
    794 /** ƒIƒuƒWƒFƒNƒg‚̃vƒŠƒ~ƒeƒBƒuƒNƒ‰ƒX‚ðŽæ“¾ 
    795  * 
    796  * @param rcvr      [in] ƒŒƒV[ƒo 
    797  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    798  * 
    799  * @return          ƒvƒŠƒ~ƒeƒBƒuƒNƒ‰ƒX 
     794/** オブジェクトのプリミティブクラスを取得 
     795 * 
     796 * @param rcvr      [in] レシーバ 
     797 * @param r         [in] オブジェクト 
     798 * 
     799 * @return          プリミティブクラス 
    800800 */ 
    801801 
     
    831831 
    832832/*------------------------------------------------------------------------*/ 
    833 /** ƒIƒuƒWƒFƒNƒg‚̃Nƒ‰ƒXƒVƒ“ƒ{ƒ‹‚ðŽæ“¾ 
    834  * 
    835  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    836  * 
    837  * @return          ƒNƒ‰ƒXƒVƒ“ƒ{ƒ‹ 
     833/** オブジェクトのクラスシンボルを取得 
     834 * 
     835 * @param r         [in] オブジェクト 
     836 * 
     837 * @return          クラスシンボル 
    838838 */ 
    839839 
     
    848848 
    849849/*------------------------------------------------------------------------*/ 
    850 /** ƒIƒuƒWƒFƒNƒg‚̃Nƒ‰ƒXƒVƒ“ƒ{ƒ‹‚ðƒZƒbƒg‚·‚é 
    851  * 
    852  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    853  * @param c         [in] ƒNƒ‰ƒXƒVƒ“ƒ{ƒ‹ 
    854  * 
    855  * @retval          ƒIƒuƒWƒFƒNƒg    ƒNƒ‰ƒXƒVƒ“ƒ{ƒ‹‚ðƒZƒbƒg‚Å‚«‚½ê‡ 
    856  * @retval          NIL         ƒNƒ‰ƒXƒVƒ“ƒ{ƒ‹‚ðƒZƒbƒg‚Å‚«‚È‚©‚Á‚½ê‡ 
     850/** オブジェクトのクラスシンボルをセットする 
     851 * 
     852 * @param r         [in] オブジェクト 
     853 * @param c         [in] クラスシンボル 
     854 * 
     855 * @retval          オブジェクト  クラスシンボルをセットできた場合 
     856 * @retval          NIL         クラスシンボルをセットできなかった場合 
    857857 */ 
    858858 
     
    867867 
    868868/*------------------------------------------------------------------------*/ 
    869 /** ŽQÆ‚Ì”äŠr 
    870  * 
    871  * @param r1        [in] ŽQÆ‚P 
    872  * @param r2        [in] ŽQÆ‚Q 
    873  * 
    874  * @retval          TRUE    “¯’l 
    875  * @retval          NIL     “¯’l‚łȂ¢ 
    876  * 
    877  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     869/** 参照の比較 
     870 * 
     871 * @param r1        [in] 参照1 
     872 * @param r2        [in] 参照2 
     873 * 
     874 * @retval          TRUE    同値 
     875 * @retval          NIL     同値でない 
     876 * 
     877 * @note            スクリプトからの呼出し用 
    878878 */ 
    879879 
     
    885885 
    886886/*------------------------------------------------------------------------*/ 
    887 /** ƒIƒuƒWƒFƒNƒg‚Ì”äŠr 
    888  * 
    889  * @param rcvr      [in] ƒŒƒV[ƒo 
    890  * @param r1        [in] ƒIƒuƒWƒFƒNƒg‚P 
    891  * @param r2        [in] ƒIƒuƒWƒFƒNƒg‚Q 
    892  * 
    893  * @retval          TRUE    “¯’l 
    894  * @retval          NIL     “¯’l‚łȂ¢ 
    895  * 
    896  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     887/** オブジェクトの比較 
     888 * 
     889 * @param rcvr      [in] レシーバ 
     890 * @param r1        [in] オブジェクト1 
     891 * @param r2        [in] オブジェクト2 
     892 * 
     893 * @retval          TRUE    同値 
     894 * @retval          NIL     同値でない 
     895 * 
     896 * @note            スクリプトからの呼出し用 
    897897 */ 
    898898 
     
    904904 
    905905/*------------------------------------------------------------------------*/ 
    906 /** ƒVƒ“ƒ{ƒ‹‚ðŽš‹å“I‚É”äŠri‘å•¶Žš¬•¶Žš‚Í‹æ•Ê‚³‚ê‚È‚¢j 
    907  * 
    908  * @param rcvr      [in] ƒŒƒV[ƒo 
    909  * @param r1        [in] ƒVƒ“ƒ{ƒ‹‚P 
    910  * @param r2        [in] ƒVƒ“ƒ{ƒ‹‚Q 
    911  * 
    912  * @retval          •‰‚̐®”    r1 < r2 
     906/** シンボルを字句的に比較(大文字小文字は区別されない) 
     907 * 
     908 * @param rcvr      [in] レシーバ 
     909 * @param r1        [in] シンボル1 
     910 * @param r2        [in] シンボル2 
     911 * 
     912 * @retval          負の整数    r1 < r2 
    913913 * @retval          0       r1 = r2 
    914  * @retval          ³‚̐®”    r1 > r2 
    915  * 
    916  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     914 * @retval          正の整数    r1 > r2 
     915 * 
     916 * @note            スクリプトからの呼出し用 
    917917 */ 
    918918 
     
    930930 
    931931/*------------------------------------------------------------------------*/ 
    932 /** sub ‚ª supr ‚̃TƒuƒNƒ‰ƒX‚ðŠÜ‚Þ‚©ƒ`ƒFƒbƒN‚·‚é 
    933  * 
    934  * @param rcvr      [in] ƒŒƒV[ƒo 
    935  * @param sub       [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚P 
    936  * @param supr      [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚Q 
    937  * 
    938  * @retval          TRUE    ƒTƒuƒNƒ‰ƒX‚ðŠÜ‚Þ 
    939  * @retval          NIL     ƒTƒuƒNƒ‰ƒX‚ðŠÜ‚܂Ȃ¢ 
    940  * 
    941  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     932/** sub が supr のサブクラスを含むかチェックする 
     933 * 
     934 * @param rcvr      [in] レシーバ 
     935 * @param sub       [in] シンボルオブジェクト1 
     936 * @param supr      [in] シンボルオブジェクト2 
     937 * 
     938 * @retval          TRUE    サブクラスを含む 
     939 * @retval          NIL     サブクラスを含まない 
     940 * 
     941 * @note            スクリプトからの呼出し用 
    942942 */ 
    943943 
     
    949949 
    950950/*------------------------------------------------------------------------*/ 
    951 /** sub ‚ª supr ‚̃TƒuƒNƒ‰ƒX‚©ƒ`ƒFƒbƒN‚·‚é 
    952  * 
    953  * @param rcvr      [in] ƒŒƒV[ƒo 
    954  * @param sub       [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚P 
    955  * @param supr      [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚Q 
    956  * 
    957  * @retval          TRUE    ƒTƒuƒNƒ‰ƒX‚Å‚ ‚é 
    958  * @retval          NIL     ƒTƒuƒNƒ‰ƒX‚łȂ¢ 
    959  * 
    960  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     951/** sub が supr のサブクラスかチェックする 
     952 * 
     953 * @param rcvr      [in] レシーバ 
     954 * @param sub       [in] シンボルオブジェクト1 
     955 * @param supr      [in] シンボルオブジェクト2 
     956 * 
     957 * @retval          TRUE    サブクラスである 
     958 * @retval          NIL     サブクラスでない 
     959 * 
     960 * @note            スクリプトからの呼出し用 
    961961 */ 
    962962 
     
    968968 
    969969/*------------------------------------------------------------------------*/ 
    970 /** obj ‚ª r ‚̃Cƒ“ƒXƒ^ƒ“ƒX‚©ƒ`ƒFƒbƒN‚·‚é 
    971  * 
    972  * @param rcvr      [in] ƒŒƒV[ƒo 
    973  * @param obj       [in] ƒIƒuƒWƒFƒNƒg 
    974  * @param r         [in] ƒNƒ‰ƒXƒVƒ“ƒ{ƒ‹ 
    975  * 
    976  * @retval          TRUE    ƒCƒ“ƒXƒ^ƒ“ƒX‚Å‚ ‚é 
    977  * @retval          NIL     ƒCƒ“ƒXƒ^ƒ“ƒX‚łȂ¢ 
    978  * 
    979  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     970/** obj が r のインスタンスかチェックする 
     971 * 
     972 * @param rcvr      [in] レシーバ 
     973 * @param obj       [in] オブジェクト 
     974 * @param r         [in] クラスシンボル 
     975 * 
     976 * @retval          TRUE    インスタンスである 
     977 * @retval          NIL     インスタンスでない 
     978 * 
     979 * @note            スクリプトからの呼出し用 
    980980 */ 
    981981 
     
    988988#pragma mark - 
    989989/*------------------------------------------------------------------------*/ 
    990 /** r ‚ª”z—ñ‚©ƒ`ƒFƒbƒN‚·‚é 
    991  * 
    992  * @param rcvr      [in] ƒŒƒV[ƒo 
    993  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    994  * 
    995  * @retval          TRUE    ”z—ñ‚Å‚ ‚é 
    996  * @retval          NIL     ”z—ñ‚łȂ¢ 
    997  * 
    998  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     990/** r が配列かチェックする 
     991 * 
     992 * @param rcvr      [in] レシーバ 
     993 * @param r         [in] オブジェクト 
     994 * 
     995 * @retval          TRUE    配列である 
     996 * @retval          NIL     配列でない 
     997 * 
     998 * @note            スクリプトからの呼出し用 
    999999 */ 
    10001000 
     
    10061006 
    10071007/*------------------------------------------------------------------------*/ 
    1008 /** r ‚ªƒtƒŒ[ƒ€‚©ƒ`ƒFƒbƒN‚·‚é 
    1009  * 
    1010  * @param rcvr      [in] ƒŒƒV[ƒo 
    1011  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1012  * 
    1013  * @retval          TRUE    ƒtƒŒ[ƒ€‚Å‚ ‚é 
    1014  * @retval          NIL     ƒtƒŒ[ƒ€‚łȂ¢ 
    1015  * 
    1016  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     1008/** r がフレームかチェックする 
     1009 * 
     1010 * @param rcvr      [in] レシーバ 
     1011 * @param r         [in] オブジェクト 
     1012 * 
     1013 * @retval          TRUE    フレームである 
     1014 * @retval          NIL     フレームでない 
     1015 * 
     1016 * @note            スクリプトからの呼出し用 
    10171017 */ 
    10181018 
     
    10241024 
    10251025/*------------------------------------------------------------------------*/ 
    1026 /** r ‚ªƒoƒCƒiƒŠ‚©ƒ`ƒFƒbƒN‚·‚é 
    1027  * 
    1028  * @param rcvr      [in] ƒŒƒV[ƒo 
    1029  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1030  * 
    1031  * @retval          TRUE    ƒoƒCƒiƒŠ‚Å‚ ‚é 
    1032  * @retval          NIL     ƒoƒCƒiƒŠ‚łȂ¢ 
    1033  * 
    1034  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     1026/** r がバイナリかチェックする 
     1027 * 
     1028 * @param rcvr      [in] レシーバ 
     1029 * @param r         [in] オブジェクト 
     1030 * 
     1031 * @retval          TRUE    バイナリである 
     1032 * @retval          NIL     バイナリでない 
     1033 * 
     1034 * @note            スクリプトからの呼出し用 
    10351035 */ 
    10361036 
     
    10421042 
    10431043/*------------------------------------------------------------------------*/ 
    1044 /** r ‚ªƒVƒ“ƒ{ƒ‹‚©ƒ`ƒFƒbƒN‚·‚é 
    1045  * 
    1046  * @param rcvr      [in] ƒŒƒV[ƒo 
    1047  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1048  * 
    1049  * @retval          TRUE    ƒVƒ“ƒ{ƒ‹‚Å‚ ‚é 
    1050  * @retval          NIL     ƒVƒ“ƒ{ƒ‹‚łȂ¢ 
    1051  * 
    1052  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     1044/** r がシンボルかチェックする 
     1045 * 
     1046 * @param rcvr      [in] レシーバ 
     1047 * @param r         [in] オブジェクト 
     1048 * 
     1049 * @retval          TRUE    シンボルである 
     1050 * @retval          NIL     シンボルでない 
     1051 * 
     1052 * @note            スクリプトからの呼出し用 
    10531053 */ 
    10541054 
     
    10601060 
    10611061/*------------------------------------------------------------------------*/ 
    1062 /** r ‚ª•¶Žš—ñ‚©ƒ`ƒFƒbƒN‚·‚é 
    1063  * 
    1064  * @param rcvr      [in] ƒŒƒV[ƒo 
    1065  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1066  * 
    1067  * @retval          TRUE    •¶Žš—ñ‚Å‚ ‚é 
    1068  * @retval          NIL     •¶Žš—ñ‚łȂ¢ 
    1069  * 
    1070  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     1062/** r が文字列かチェックする 
     1063 * 
     1064 * @param rcvr      [in] レシーバ 
     1065 * @param r         [in] オブジェクト 
     1066 * 
     1067 * @retval          TRUE    文字列である 
     1068 * @retval          NIL     文字列でない 
     1069 * 
     1070 * @note            スクリプトからの呼出し用 
    10711071 */ 
    10721072 
     
    10781078 
    10791079/*------------------------------------------------------------------------*/ 
    1080 /** r ‚ª•¶Žš‚©ƒ`ƒFƒbƒN‚·‚é 
    1081  * 
    1082  * @param rcvr      [in] ƒŒƒV[ƒo 
    1083  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1084  * 
    1085  * @retval          TRUE    •¶Žš‚Å‚ ‚é 
    1086  * @retval          NIL     •¶Žš‚łȂ¢ 
    1087  * 
    1088  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     1080/** r が文字かチェックする 
     1081 * 
     1082 * @param rcvr      [in] レシーバ 
     1083 * @param r         [in] オブジェクト 
     1084 * 
     1085 * @retval          TRUE    文字である 
     1086 * @retval          NIL     文字でない 
     1087 * 
     1088 * @note            スクリプトからの呼出し用 
    10891089 */ 
    10901090 
     
    10961096 
    10971097/*------------------------------------------------------------------------*/ 
    1098 /** r ‚ª®”‚©ƒ`ƒFƒbƒN‚·‚é 
    1099  * 
    1100  * @param rcvr      [in] ƒŒƒV[ƒo 
    1101  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1102  * 
    1103  * @retval          TRUE    ®”‚Å‚ ‚é 
    1104  * @retval          NIL     ®”‚łȂ¢ 
    1105  * 
    1106  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     1098/** r が整数かチェックする 
     1099 * 
     1100 * @param rcvr      [in] レシーバ 
     1101 * @param r         [in] オブジェクト 
     1102 * 
     1103 * @retval          TRUE    整数である 
     1104 * @retval          NIL     整数でない 
     1105 * 
     1106 * @note            スクリプトからの呼出し用 
    11071107 */ 
    11081108 
     
    11141114 
    11151115/*------------------------------------------------------------------------*/ 
    1116 /** r ‚ª•‚“®¬”“_”‚©ƒ`ƒFƒbƒN‚·‚é 
    1117  * 
    1118  * @param rcvr      [in] ƒŒƒV[ƒo 
    1119  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1120  * 
    1121  * @retval          TRUE    •‚“®¬”“_”‚Å‚ ‚é 
    1122  * @retval          NIL     •‚“®¬”“_”‚łȂ¢ 
    1123  * 
    1124  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     1116/** r が浮動小数点数かチェックする 
     1117 * 
     1118 * @param rcvr      [in] レシーバ 
     1119 * @param r         [in] オブジェクト 
     1120 * 
     1121 * @retval          TRUE    浮動小数点数である 
     1122 * @retval          NIL     浮動小数点数でない 
     1123 * 
     1124 * @note            スクリプトからの呼出し用 
    11251125 */ 
    11261126 
     
    11321132 
    11331133/*------------------------------------------------------------------------*/ 
    1134 /** r ‚ª”’lƒf[ƒ^‚©ƒ`ƒFƒbƒN‚·‚é 
    1135  * 
    1136  * @param rcvr      [in] ƒŒƒV[ƒo 
    1137  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1138  * 
    1139  * @retval          TRUE    ”’lƒf[ƒ^‚Å‚ ‚é 
    1140  * @retval          NIL     ”’lƒf[ƒ^‚łȂ¢ 
     1134/** r が数値データかチェックする 
     1135 * 
     1136 * @param rcvr      [in] レシーバ 
     1137 * @param r         [in] オブジェクト 
     1138 * 
     1139 * @retval          TRUE    数値データである 
     1140 * @retval          NIL     数値データでない 
    11411141 */ 
    11421142 
     
    11481148 
    11491149/*------------------------------------------------------------------------*/ 
    1150 /** r ‚ªƒCƒ~ƒfƒBƒGƒCƒgi‘¦’lj‚©ƒ`ƒFƒbƒN‚·‚é 
    1151  * 
    1152  * @param rcvr      [in] ƒŒƒV[ƒo 
    1153  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1154  * 
    1155  * @retval          TRUE    ƒCƒ~ƒfƒBƒGƒCƒg‚Å‚ ‚é 
    1156  * @retval          NIL     ƒCƒ~ƒfƒBƒGƒCƒg‚łȂ¢ 
     1150/** r がイミディエイト(即値)かチェックする 
     1151 * 
     1152 * @param rcvr      [in] レシーバ 
     1153 * @param r         [in] オブジェクト 
     1154 * 
     1155 * @retval          TRUE    イミディエイトである 
     1156 * @retval          NIL     イミディエイトでない 
    11571157 */ 
    11581158 
     
    11641164 
    11651165/*------------------------------------------------------------------------*/ 
    1166 /** r ‚ªŠÖ”ƒIƒuƒWƒFƒNƒg‚©ƒ`ƒFƒbƒN‚·‚é 
    1167  * 
    1168  * @param rcvr      [in] ƒŒƒV[ƒo 
    1169  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1170  * 
    1171  * @retval          TRUE    ŠÖ”ƒIƒuƒWƒFƒNƒg‚Å‚ ‚é 
    1172  * @retval          NIL     ŠÖ”ƒIƒuƒWƒFƒNƒg‚łȂ¢ 
     1166/** r が関数オブジェクトかチェックする 
     1167 * 
     1168 * @param rcvr      [in] レシーバ 
     1169 * @param r         [in] オブジェクト 
     1170 * 
     1171 * @retval          TRUE    関数オブジェクトである 
     1172 * @retval          NIL     関数オブジェクトでない 
    11731173 */ 
    11741174 
     
    11801180 
    11811181/*------------------------------------------------------------------------*/ 
    1182 /** r ‚ªƒŠ[ƒhƒIƒ“ƒŠ[‚©ƒ`ƒFƒbƒN‚·‚é 
    1183  * 
    1184  * @param rcvr      [in] ƒŒƒV[ƒo 
    1185  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1186  * 
    1187  * @retval          TRUE    ƒŠ[ƒhƒIƒ“ƒŠ[‚Å‚ ‚é 
    1188  * @retval          NIL     ƒŠ[ƒhƒIƒ“ƒŠ[‚łȂ¢ 
     1182/** r がリードオンリーかチェックする 
     1183 * 
     1184 * @param rcvr      [in] レシーバ 
     1185 * @param r         [in] オブジェクト 
     1186 * 
     1187 * @retval          TRUE    リードオンリーである 
     1188 * @retval          NIL     リードオンリーでない 
    11891189 */ 
    11901190 
     
    11971197#pragma mark - 
    11981198/*------------------------------------------------------------------------*/ 
    1199 /** ”z—ñƒIƒuƒWƒFƒNƒg‚É’l‚ð’ljÁ‚·‚é 
    1200  * 
    1201  * @param r         [in] ”z—ñƒIƒuƒWƒFƒNƒg 
    1202  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    1203  * 
    1204  * @return          ’lƒIƒuƒWƒFƒNƒg 
     1199/** 配列オブジェクトに値を追加する 
     1200 * 
     1201 * @param r         [in] 配列オブジェクト 
     1202 * @param v         [in] 値オブジェクト 
     1203 * 
     1204 * @return          値オブジェクト 
    12051205 */ 
    12061206 
     
    12191219 
    12201220/*------------------------------------------------------------------------*/ 
    1221 /** ”z—ñƒIƒuƒWƒFƒNƒg‚Ì—v‘f‚ð•¶Žš—ñ‚ɍ‡¬‚·‚é 
    1222  * 
    1223  * @param r         [in] ”z—ñƒIƒuƒWƒFƒNƒg 
    1224  * 
    1225  * @return          •¶Žš—ñƒIƒuƒWƒFƒNƒg 
     1221/** 配列オブジェクトの要素を文字列に合成する 
     1222 * 
     1223 * @param r         [in] 配列オブジェクト 
     1224 * 
     1225 * @return          文字列オブジェクト 
    12261226 */ 
    12271227 
     
    12511251 
    12521252/*------------------------------------------------------------------------*/ 
    1253 /** •¶Žš—ñƒIƒuƒWƒFƒNƒg‚̍Ōã‚ɃIƒuƒWƒFƒNƒg‚ð•¶Žš—ñ‰»‚µ‚ĒljÁ‚·‚é 
    1254  * 
    1255  * @param rcvr      [in] ƒŒƒV[ƒo 
    1256  * @param str       [in] •¶Žš—ñƒIƒuƒWƒFƒNƒg 
    1257  * @param v         [in] ƒIƒuƒWƒFƒNƒg 
    1258  * 
    1259  * @return          •¶Žš—ñƒIƒuƒWƒFƒNƒg 
     1253/** 文字列オブジェクトの最後にオブジェクトを文字列化して追加する 
     1254 * 
     1255 * @param rcvr      [in] レシーバ 
     1256 * @param str       [in] 文字列オブジェクト 
     1257 * @param v         [in] オブジェクト 
     1258 * 
     1259 * @return          文字列オブジェクト 
    12601260 */ 
    12611261 
     
    13201320 
    13211321/*------------------------------------------------------------------------*/ 
    1322 /** •¶Žš—ñƒIƒuƒWƒFƒNƒg‚©‚çƒVƒ“ƒ{ƒ‹‚ðì¬‚·‚é 
    1323  * 
    1324  * @param rcvr      [in] ƒŒƒV[ƒo 
    1325  * @param r         [in] •¶Žš—ñƒIƒuƒWƒFƒNƒg 
    1326  * 
    1327  * @return          ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
     1322/** 文字列オブジェクトからシンボルを作成する 
     1323 * 
     1324 * @param rcvr      [in] レシーバ 
     1325 * @param r         [in] 文字列オブジェクト 
     1326 * 
     1327 * @return          シンボルオブジェクト 
    13281328 */ 
    13291329 
     
    13421342 
    13431343/*------------------------------------------------------------------------*/ 
    1344 /** ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    1345  * 
    1346  * @param rcvr      [in] ƒŒƒV[ƒo 
    1347  * 
    1348  * @return          ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg 
     1344/** フレームオブジェクトを作成する 
     1345 * 
     1346 * @param rcvr      [in] レシーバ 
     1347 * 
     1348 * @return          フレームオブジェクト 
    13491349 */ 
    13501350 
     
    13561356 
    13571357/*------------------------------------------------------------------------*/ 
    1358 /** ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    1359  * 
    1360  * @param rcvr      [in] ƒŒƒV[ƒo 
    1361  * @param length    [in] ’·‚³ 
    1362  * @param klass     [in] ƒNƒ‰ƒX 
    1363  * 
    1364  * @return          ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg 
     1358/** バイナリオブジェクトを作成する 
     1359 * 
     1360 * @param rcvr      [in] レシーバ 
     1361 * @param length    [in] 長さ 
     1362 * @param klass     [in] クラス 
     1363 * 
     1364 * @return          バイナリオブジェクト 
    13651365 */ 
    13661366 
     
    13761376#pragma mark - 
    13771377/*------------------------------------------------------------------------*/ 
    1378 /** ®”‚̃rƒbƒgAND 
    1379  * 
    1380  * @param r1        [in] ®”ƒIƒuƒWƒFƒNƒg‚P 
    1381  * @param r2        [in] ®”ƒIƒuƒWƒFƒNƒg‚Q 
    1382  * 
    1383  * @return          ”’lƒIƒuƒWƒFƒNƒg 
     1378/** 整数のビットAND 
     1379 * 
     1380 * @param r1        [in] 整数オブジェクト1 
     1381 * @param r2        [in] 整数オブジェクト2 
     1382 * 
     1383 * @return          数値オブジェクト 
    13841384 */ 
    13851385 
     
    13971397 
    13981398/*------------------------------------------------------------------------*/ 
    1399 /** ®”‚̃rƒbƒgOR 
    1400  * 
    1401  * @param r1        [in] ®”ƒIƒuƒWƒFƒNƒg‚P 
    1402  * @param r2        [in] ®”ƒIƒuƒWƒFƒNƒg‚Q 
    1403  * 
    1404  * @return          ”’lƒIƒuƒWƒFƒNƒg 
     1399/** 整数のビットOR 
     1400 * 
     1401 * @param r1        [in] 整数オブジェクト1 
     1402 * @param r2        [in] 整数オブジェクト2 
     1403 * 
     1404 * @return          数値オブジェクト 
    14051405 */ 
    14061406 
     
    14181418 
    14191419/*------------------------------------------------------------------------*/ 
    1420 /** ®”‚̃rƒbƒgNOT 
    1421  * 
    1422  * @param r     [in] ®”ƒIƒuƒWƒFƒNƒg 
    1423  * 
    1424  * @return          ”’lƒIƒuƒWƒFƒNƒg 
     1420/** 整数のビットNOT 
     1421 * 
     1422 * @param r     [in] 整数オブジェクト 
     1423 * 
     1424 * @return          数値オブジェクト 
    14251425 */ 
    14261426 
     
    14361436#pragma mark - 
    14371437/*------------------------------------------------------------------------*/ 
    1438 /** ƒu[ƒ‹‰‰ŽZ AND 
    1439  * 
    1440  * @param rcvr      [in] ƒŒƒV[ƒo 
    1441  * @param r1        [in] ƒIƒuƒWƒFƒNƒg‚P 
    1442  * @param r2        [in] ƒIƒuƒWƒFƒNƒg‚Q 
     1438/** ブール演算 AND 
     1439 * 
     1440 * @param rcvr      [in] レシーバ 
     1441 * @param r1        [in] オブジェクト1 
     1442 * @param r2        [in] オブジェクト2 
    14431443 * 
    14441444 * @retval          TRUE 
     
    14571457 
    14581458/*------------------------------------------------------------------------*/ 
    1459 /** ƒu[ƒ‹‰‰ŽZ OR 
    1460  * 
    1461  * @param rcvr      [in] ƒŒƒV[ƒo 
    1462  * @param r1        [in] ƒIƒuƒWƒFƒNƒg‚P 
    1463  * @param r2        [in] ƒIƒuƒWƒFƒNƒg‚Q 
     1459/** ブール演算 OR 
     1460 * 
     1461 * @param rcvr      [in] レシーバ 
     1462 * @param r1        [in] オブジェクト1 
     1463 * @param r2        [in] オブジェクト2 
    14641464 * 
    14651465 * @retval          TRUE 
     
    14791479#pragma mark - 
    14801480/*------------------------------------------------------------------------*/ 
    1481 /** ”’lˆø”‚̃`ƒFƒbƒN 
    1482  * 
    1483  * @param r1        [in] ƒIƒuƒWƒFƒNƒg‚P 
    1484  * @param r2        [in] ƒIƒuƒWƒFƒNƒg‚Q 
    1485  * @param real      [out]•‚“®¬”“_‚ðŠÜ‚Þ 
    1486  * 
    1487  * @retval          true    ˆø”‚ª”’l 
    1488  * @retval          false   ˆø”‚ª”’l‚łȂ¢ 
     1481/** 数値引数のチェック 
     1482 * 
     1483 * @param r1        [in] オブジェクト1 
     1484 * @param r2        [in] オブジェクト2 
     1485 * @param real      [out]浮動小数点を含む 
     1486 * 
     1487 * @retval          true    引数が数値 
     1488 * @retval          false   引数が数値でない 
    14891489 */ 
    14901490 
     
    15191519 
    15201520/*------------------------------------------------------------------------*/ 
    1521 /** ‰ÁŽZ(r1 + r2) 
    1522  * 
    1523  * @param r1        [in] ”’lƒIƒuƒWƒFƒNƒg‚P 
    1524  * @param r2        [in] ”’lƒIƒuƒWƒFƒNƒg‚Q 
    1525  * 
    1526  * @return          ”’lƒIƒuƒWƒFƒNƒg 
     1521/** 加算(r1 + r2) 
     1522 * 
     1523 * @param r1        [in] 数値オブジェクト1 
     1524 * @param r2        [in] 数値オブジェクト2 
     1525 * 
     1526 * @return          数値オブジェクト 
    15271527 */ 
    15281528 
     
    15581558 
    15591559/*------------------------------------------------------------------------*/ 
    1560 /** Œ¸ŽZ(r1 - r2) 
    1561  * 
    1562  * @param r1        [in] ”’lƒIƒuƒWƒFƒNƒg‚P 
    1563  * @param r2        [in] ”’lƒIƒuƒWƒFƒNƒg‚Q 
    1564  * 
    1565  * @return          ”’lƒIƒuƒWƒFƒNƒg 
     1560/** 減算(r1 - r2) 
     1561 * 
     1562 * @param r1        [in] 数値オブジェクト1 
     1563 * @param r2        [in] 数値オブジェクト2 
     1564 * 
     1565 * @return          数値オブジェクト 
    15661566 */ 
    15671567 
     
    15971597 
    15981598/*------------------------------------------------------------------------*/ 
    1599 /** æŽZ(r1 x r2) 
    1600  * 
    1601  * @param r1        [in] ”’lƒIƒuƒWƒFƒNƒg‚P 
    1602  * @param r2        [in] ”’lƒIƒuƒWƒFƒNƒg‚Q 
    1603  * 
    1604  * @return          ”’lƒIƒuƒWƒFƒNƒg 
     1599/** 乗算(r1 x r2) 
     1600 * 
     1601 * @param r1        [in] 数値オブジェクト1 
     1602 * @param r2        [in] 数値オブジェクト2 
     1603 * 
     1604 * @return          数値オブジェクト 
    16051605 */ 
    16061606 
     
    16361636 
    16371637/*------------------------------------------------------------------------*/ 
    1638 /** Š„ŽZ(r1 / r2) 
    1639  * 
    1640  * @param r1        [in] ”’lƒIƒuƒWƒFƒNƒg‚P 
    1641  * @param r2        [in] ”’lƒIƒuƒWƒFƒNƒg‚Q 
    1642  * 
    1643  * @return          ”’lƒIƒuƒWƒFƒNƒg 
     1638/** 割算(r1 / r2) 
     1639 * 
     1640 * @param r1        [in] 数値オブジェクト1 
     1641 * @param r2        [in] 数値オブジェクト2 
     1642 * 
     1643 * @return          数値オブジェクト 
    16441644 */ 
    16451645 
     
    16811681 
    16821682/*------------------------------------------------------------------------*/ 
    1683 /** ®”‚ÌŠ„ŽZ(r1 / r2) 
    1684  * 
    1685  * @param r1        [in] ®”ƒIƒuƒWƒFƒNƒg‚P 
    1686  * @param r2        [in] ®”ƒIƒuƒWƒFƒNƒg‚Q 
    1687  * 
    1688  * @return          ®”ƒIƒuƒWƒFƒNƒg 
     1683/** 整数の割算(r1 / r2) 
     1684 * 
     1685 * @param r1        [in] 整数オブジェクト1 
     1686 * @param r2        [in] 整数オブジェクト2 
     1687 * 
     1688 * @return          整数オブジェクト 
    16891689 */ 
    16901690 
     
    17021702 
    17031703/*------------------------------------------------------------------------*/ 
    1704 /** r1 ‚ð r2 ‚ÅŠ„‚Á‚½‚Ì—]‚è‚ðŒvŽZ 
    1705  * 
    1706  * @param rcvr      [in] ƒŒƒV[ƒo 
    1707  * @param r1        [in] ®”ƒIƒuƒWƒFƒNƒg‚P 
    1708  * @param r2        [in] ®”ƒIƒuƒWƒFƒNƒg‚Q 
    1709  * 
    1710  * @return          ®”ƒIƒuƒWƒFƒNƒg 
     1704/** r1 を r2 で割ったの余りを計算 
     1705 * 
     1706 * @param rcvr      [in] レシーバ 
     1707 * @param r1        [in] 整数オブジェクト1 
     1708 * @param r2        [in] 整数オブジェクト2 
     1709 * 
     1710 * @return          整数オブジェクト 
    17111711 */ 
    17121712 
     
    17241724 
    17251725/*------------------------------------------------------------------------*/ 
    1726 /** ƒrƒbƒgƒVƒtƒg(r1 << r2) 
    1727  * 
    1728  * @param rcvr      [in] ƒŒƒV[ƒo 
    1729  * @param r1        [in] ®”ƒIƒuƒWƒFƒNƒg‚P 
    1730  * @param r2        [in] ®”ƒIƒuƒWƒFƒNƒg‚Q 
    1731  * 
    1732  * @return          ®”ƒIƒuƒWƒFƒNƒg 
     1726/** ビットシフト(r1 << r2) 
     1727 * 
     1728 * @param rcvr      [in] レシーバ 
     1729 * @param r1        [in] 整数オブジェクト1 
     1730 * @param r2        [in] 整数オブジェクト2 
     1731 * 
     1732 * @return          整数オブジェクト 
    17331733 */ 
    17341734 
     
    17461746 
    17471747/*------------------------------------------------------------------------*/ 
    1748 /** ƒrƒbƒgƒVƒtƒg(r1 >> r2) 
    1749  * 
    1750  * @param rcvr      [in] ƒŒƒV[ƒo 
    1751  * @param r1        [in] ®”ƒIƒuƒWƒFƒNƒg‚P 
    1752  * @param r2        [in] ®”ƒIƒuƒWƒFƒNƒg‚Q 
    1753  * 
    1754  * @return          ®”ƒIƒuƒWƒFƒNƒg 
     1748/** ビットシフト(r1 >> r2) 
     1749 * 
     1750 * @param rcvr      [in] レシーバ 
     1751 * @param r1        [in] 整数オブジェクト1 
     1752 * @param r2        [in] 整数オブジェクト2 
     1753 * 
     1754 * @return          整数オブジェクト 
    17551755 */ 
    17561756 
     
    17691769#pragma mark - 
    17701770/*------------------------------------------------------------------------*/ 
    1771 /** ƒIƒuƒWƒFƒNƒg‚̑召”äŠr(r1 < r2) 
    1772  * 
    1773  * @param r1        [in] ƒIƒuƒWƒFƒNƒg‚P 
    1774  * @param r2        [in] ƒIƒuƒWƒFƒNƒg‚Q 
     1771/** オブジェクトの大小比較(r1 < r2) 
     1772 * 
     1773 * @param r1        [in] オブジェクト1 
     1774 * @param r2        [in] オブジェクト2 
    17751775 * 
    17761776 * @retval          TRUE 
    17771777 * @retval          NIL 
    17781778 * 
    1779  * @note            ƒXƒNƒŠƒvƒg‚̌ďo‚µ—p 
     1779 * @note            スクリプトの呼出し用 
    17801780 */ 
    17811781 
     
    17871787 
    17881788/*------------------------------------------------------------------------*/ 
    1789 /** ƒIƒuƒWƒFƒNƒg‚̑召”äŠr(r1 > r2) 
    1790  * 
    1791  * @param r1        [in] ƒIƒuƒWƒFƒNƒg‚P 
    1792  * @param r2        [in] ƒIƒuƒWƒFƒNƒg‚Q 
     1789/** オブジェクトの大小比較(r1 > r2) 
     1790 * 
     1791 * @param r1        [in] オブジェクト1 
     1792 * @param r2        [in] オブジェクト2 
    17931793 * 
    17941794 * @retval          TRUE 
    17951795 * @retval          NIL 
    17961796 * 
    1797  * @note            ƒXƒNƒŠƒvƒg‚̌ďo‚µ—p 
     1797 * @note            スクリプトの呼出し用 
    17981798 */ 
    17991799 
     
    18051805 
    18061806/*------------------------------------------------------------------------*/ 
    1807 /** ƒIƒuƒWƒFƒNƒg‚̑召”äŠr(r1 >= r2) 
    1808  * 
    1809  * @param r1        [in] ƒIƒuƒWƒFƒNƒg‚P 
    1810  * @param r2        [in] ƒIƒuƒWƒFƒNƒg‚Q 
     1807/** オブジェクトの大小比較(r1 >= r2) 
     1808 * 
     1809 * @param r1        [in] オブジェクト1 
     1810 * @param r2        [in] オブジェクト2 
    18111811 * 
    18121812 * @retval          TRUE 
    18131813 * @retval          NIL 
    18141814 * 
    1815  * @note            ƒXƒNƒŠƒvƒg‚̌ďo‚µ—p 
     1815 * @note            スクリプトの呼出し用 
    18161816 */ 
    18171817 
     
    18231823 
    18241824/*------------------------------------------------------------------------*/ 
    1825 /** ƒIƒuƒWƒFƒNƒg‚̑召”äŠr(r1 <= r2) 
    1826  * 
    1827  * @param r1        [in] ƒIƒuƒWƒFƒNƒg‚P 
    1828  * @param r2        [in] ƒIƒuƒWƒFƒNƒg‚Q 
     1825/** オブジェクトの大小比較(r1 <= r2) 
     1826 * 
     1827 * @param r1        [in] オブジェクト1 
     1828 * @param r2        [in] オブジェクト2 
    18291829 * 
    18301830 * @retval          TRUE 
    18311831 * @retval          NIL 
    18321832 * 
    1833  * @note            ƒXƒNƒŠƒvƒg‚̌ďo‚µ—p 
     1833 * @note            スクリプトの呼出し用 
    18341834 */ 
    18351835 
     
    18421842#pragma mark - 
    18431843/*------------------------------------------------------------------------*/ 
    1844 /** ³‹K•\Œ»ƒIƒuƒWƒFƒNƒgiƒtƒŒ[ƒ€j‚̐¶¬ 
    1845  * 
    1846  * @param rcvr      [in] ƒŒƒV[ƒo 
    1847  * 
    1848  * @return          —áŠOƒtƒŒ[ƒ€ 
    1849  * 
    1850  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     1844/** 正規表現オブジェクト(フレーム)の生成 
     1845 * 
     1846 * @param rcvr      [in] レシーバ 
     1847 * 
     1848 * @return          例外フレーム 
     1849 * 
     1850 * @note            スクリプトからの呼出し用 
    18511851 */ 
    18521852 
     
    18591859#ifdef __NAMED_MAGIC_POINTER__ 
    18601860/*------------------------------------------------------------------------*/ 
    1861 /** ³‹K•\Œ»ƒIƒuƒWƒFƒNƒgiƒtƒŒ[ƒ€j‚̐¶¬ 
    1862  * 
    1863  * @param rcvr      [in] ƒŒƒV[ƒo 
    1864  * @param pattern   [in] ƒpƒ^[ƒ“•¶Žš—ñ 
    1865  * @param opt       [in] ƒIƒvƒVƒ‡ƒ“•¶Žš—ñ 
     1861/** 正規表現オブジェクト(フレーム)の生成 
     1862 * 
     1863 * @param rcvr      [in] レシーバ 
     1864 * @param pattern   [in] パターン文字列 
     1865 * @param opt       [in] オプション文字列 
    18661866 * 
    18671867 * @return          NIL 
     
    18841884#pragma mark - 
    18851885/*------------------------------------------------------------------------*/ 
    1886 /** •W€o—͂ɃIƒuƒWƒFƒNƒg‚ðƒvƒŠƒ“ƒg 
    1887  * 
    1888  * @param rcvr      [in] ƒŒƒV[ƒo 
    1889  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
     1886/** 標準出力にオブジェクトをプリント 
     1887 * 
     1888 * @param rcvr      [in] レシーバ 
     1889 * @param r         [in] オブジェクト 
    18901890 * 
    18911891 * @return          NIL 
    18921892 * 
    1893  * @note            ƒOƒ[ƒoƒ‹ŠÖ”—p 
     1893 * @note            グローバル関数用 
    18941894 */ 
    18951895 
     
    19021902 
    19031903/*------------------------------------------------------------------------*/ 
    1904 /** •W€o—͂ɃIƒuƒWƒFƒNƒg‚ðƒvƒŠƒ“ƒg 
    1905  * 
    1906  * @param rcvr      [in] ƒŒƒV[ƒo 
    1907  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
     1904/** 標準出力にオブジェクトをプリント 
     1905 * 
     1906 * @param rcvr      [in] レシーバ 
     1907 * @param r         [in] オブジェクト 
    19081908 * 
    19091909 * @return          NIL 
    19101910 * 
    1911  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     1911 * @note            スクリプトからの呼出し用 
    19121912 */ 
    19131913 
     
    19201920 
    19211921/*------------------------------------------------------------------------*/ 
    1922 /** •W€o—͂Ɋ֐”ƒIƒuƒWƒFƒNƒg‚ðƒ_ƒ“ƒvo—Í 
    1923  * 
    1924  * @param rcvr      [in] ƒŒƒV[ƒo 
    1925  * @param r         [in] ŠÖ”ƒIƒuƒWƒFƒNƒg 
     1922/** 標準出力に関数オブジェクトをダンプ出力 
     1923 * 
     1924 * @param rcvr      [in] レシーバ 
     1925 * @param r         [in] 関数オブジェクト 
    19261926 * 
    19271927 * @return          NIL 
    19281928 * 
    1929  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     1929 * @note            スクリプトからの呼出し用 
    19301930 */ 
    19311931 
     
    19381938 
    19391939/*------------------------------------------------------------------------*/ 
    1940 /** •W€o—͂ɃoƒCƒgƒR[ƒh‚ðƒ_ƒ“ƒvo—Í 
    1941  * 
    1942  * @param rcvr      [in] ƒŒƒV[ƒo 
    1943  * @param r         [in] ƒoƒCƒgƒR[ƒh 
     1940/** 標準出力にバイトコードをダンプ出力 
     1941 * 
     1942 * @param rcvr      [in] レシーバ 
     1943 * @param r         [in] バイトコード 
    19441944 * 
    19451945 * @return          NIL 
    19461946 * 
    1947  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     1947 * @note            スクリプトからの呼出し用 
    19481948 */ 
    19491949 
     
    19561956 
    19571957/*------------------------------------------------------------------------*/ 
    1958 /** •W€o—͂ɃXƒ^ƒbƒN‚ðƒ_ƒ“ƒvo—Í 
    1959  * 
    1960  * @param rcvr      [in] ƒŒƒV[ƒo 
     1958/** 標準出力にスタックをダンプ出力 
     1959 * 
     1960 * @param rcvr      [in] レシーバ 
    19611961 * 
    19621962 * @return          NIL 
    19631963 * 
    1964  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     1964 * @note            スクリプトからの呼出し用 
    19651965 */ 
    19661966 
     
    19731973 
    19741974/*------------------------------------------------------------------------*/ 
    1975 /** •W€o—͂Ɋ֐”î•ñ‚ð•\ަ 
    1976  * 
    1977  * @param rcvr      [in] ƒŒƒV[ƒo 
    1978  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
     1975/** 標準出力に関数情報を表示 
     1976 * 
     1977 * @param rcvr      [in] レシーバ 
     1978 * @param r         [in] オブジェクト 
    19791979 * 
    19801980 * @return          NIL 
    19811981 * 
    1982  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     1982 * @note            スクリプトからの呼出し用 
    19831983 */ 
    19841984 
     
    19921992#pragma mark - 
    19931993/*------------------------------------------------------------------------*/ 
    1994 /** •¶Žš—ñƒIƒuƒWƒFƒNƒg‚ðƒRƒ“ƒpƒCƒ‹ 
    1995  * 
    1996  * @param rcvr      [in] ƒŒƒV[ƒo 
    1997  * @param r         [in] •¶Žš—ñƒIƒuƒWƒFƒNƒg 
    1998  * 
    1999  * @return          ŠÖ”ƒIƒuƒWƒFƒNƒg 
    2000  * 
    2001  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     1994/** 文字列オブジェクトをコンパイル 
     1995 * 
     1996 * @param rcvr      [in] レシーバ 
     1997 * @param r         [in] 文字列オブジェクト 
     1998 * 
     1999 * @return          関数オブジェクト 
     2000 * 
     2001 * @note            スクリプトからの呼出し用 
    20022002 */ 
    20032003 
     
    20122012 
    20132013/*------------------------------------------------------------------------*/ 
    2014 /** ŠÂ‹«•ϐ”‚̎擾 
    2015  * 
    2016  * @param rcvr      [in] ƒŒƒV[ƒo 
    2017  * @param r         [in] •¶Žš—ñƒIƒuƒWƒFƒNƒg 
    2018  * 
    2019  * @return          •¶Žš—ñƒIƒuƒWƒFƒNƒg 
    2020  * 
    2021  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     2014/** 環境変数の取得 
     2015 * 
     2016 * @param rcvr      [in] レシーバ 
     2017 * @param r         [in] 文字列オブジェクト 
     2018 * 
     2019 * @return          文字列オブジェクト 
     2020 * 
     2021 * @note            スクリプトからの呼出し用 
    20222022 */ 
    20232023 
     
    20332033#pragma mark - 
    20342034/*------------------------------------------------------------------------*/ 
    2035 /** ƒIƒtƒZƒbƒgˆÊ’u‚©‚ç•„†•t‚«‚Ì1ƒoƒCƒg‚ðŽæ‚èo‚·B  
    2036  * 
    2037  * @param rcvr      [in] ƒŒƒV[ƒo 
    2038  * @param r         [in] ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg 
    2039  * @param offset    [in] ƒIƒtƒZƒbƒg 
    2040  * 
    2041  * @return          •„†•t‚«‚Ì1ƒoƒCƒg 
     2035/** オフセット位置から符号付きの1バイトを取り出す。  
     2036 * 
     2037 * @param rcvr      [in] レシーバ 
     2038 * @param r         [in] バイナリオブジェクト 
     2039 * @param offset    [in] オフセット 
     2040 * 
     2041 * @return          符号付きの1バイト 
    20422042 */ 
    20432043 
  • NEWT0/trunk/src/newt_core/NewtGC.c

    r56 r68  
    22/** 
    33 * @file    NewtGC.c 
    4  * @brief   ƒKƒx[ƒWƒRƒŒƒNƒVƒ‡ƒ“ 
     4 * @brief   ガベージコレクション 
    55 * 
    66 * @author  M.Nukui 
     
    1111 
    1212 
    13 /* ƒwƒbƒ_ƒtƒ@ƒCƒ‹ */ 
     13/* ヘッダファイル */ 
    1414#ifdef HAVE_MEMORY_H 
    1515    #include <memory.h> 
     
    2828 
    2929 
    30 /* ŠÖ”ƒvƒƒgƒ^ƒCƒv */ 
     30/* 関数プロトタイプ */ 
    3131static void     NewtPoolSnap(const char * title, newtPool pool, int32_t usesize); 
    3232 
     
    5050#pragma mark - 
    5151/*------------------------------------------------------------------------*/ 
    52 /** ƒƒ‚ƒŠƒv[ƒ‹‚̃XƒiƒbƒvƒVƒ‡ƒbƒg‚ðo—Í‚·‚é 
    53  * 
    54  * @param title     [in] ƒ^ƒCƒgƒ‹ 
    55  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    56  * @param usesize   [in] GC‘O‚ÌŽg—pƒTƒCƒY 
    57  * 
    58  * @return          ‚È‚µ 
     52/** メモリプールのスナップショットを出力する 
     53 * 
     54 * @param title     [in] タイトル 
     55 * @param pool      [in] メモリプール 
     56 * @param usesize   [in] GC前の使用サイズ 
     57 * 
     58 * @return          なし 
    5959 */ 
    6060 
     
    6767#pragma mark - 
    6868/*------------------------------------------------------------------------*/ 
    69 /** ƒIƒuƒWƒFƒNƒgƒf[ƒ^‚ðƒ`ƒFƒCƒ“‚·‚é 
    70  * 
    71  * @param objp      [in] ƒ`ƒFƒCƒ“‚³‚ê‚éƒIƒuƒWƒFƒNƒgƒf[ƒ^‚ւ̃|ƒCƒ“ƒ^ 
    72  * @param obj       [in] ƒ`ƒFƒCƒ“‚·‚éƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
    73  * 
    74  * @return          ‚È‚µ 
    75  * 
    76  * @note            objp ‚ÌŽQÆæ‚ª NULL ‚̏ꍇ‚Í obj ‚ðƒZƒbƒg‚µ‚ĕԂ· 
     69/** オブジェクトデータをチェインする 
     70 * 
     71 * @param objp      [in] チェインされるオブジェクトデータへのポインタ 
     72 * @param obj       [in] チェインするオブジェクトデータ 
     73 * 
     74 * @return          なし 
     75 * 
     76 * @note            objp の参照先が NULL の場合は obj をセットして返す 
    7777 */ 
    7878 
     
    9292 
    9393/*------------------------------------------------------------------------*/ 
    94 /** ƒƒ‚ƒŠƒv[ƒ‹“à‚ŃIƒuƒWƒFƒNƒgƒf[ƒ^‚ðƒ`ƒFƒCƒ“‚·‚é 
    95  * 
    96  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    97  * @param obj       [in] ƒ`ƒFƒCƒ“‚·‚éƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
    98  * @param literal   [in] ƒŠƒeƒ‰ƒ‹‚©‚Ç‚¤‚© 
    99  * 
    100  * @return          ‚È‚µ 
     94/** メモリプール内でオブジェクトデータをチェインする 
     95 * 
     96 * @param pool      [in] メモリプール 
     97 * @param obj       [in] チェインするオブジェクトデータ 
     98 * @param literal   [in] リテラルかどうか 
     99 * 
     100 * @return          なし 
    101101 */ 
    102102 
     
    114114 
    115115/*------------------------------------------------------------------------*/ 
    116 /** GC‚ª•K—v‚©ƒ`ƒFƒbƒN‚·‚é 
    117  * 
    118  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    119  * @param size      [in] ’ljÁƒTƒCƒY 
    120  * 
    121  * @return          ‚È‚µ 
     116/** GCが必要かチェックする 
     117 * 
     118 * @param pool      [in] メモリプール 
     119 * @param size      [in] 追加サイズ 
     120 * 
     121 * @return          なし 
    122122 */ 
    123123 
     
    132132 
    133133/*------------------------------------------------------------------------*/ 
    134 /** ƒƒ‚ƒŠƒv[ƒ‹“à‚ŃIƒuƒWƒFƒNƒgƒƒ‚ƒŠ‚ðŠm•Û‚µ‚ă`ƒFƒCƒ“‚·‚é 
    135  * 
    136  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    137  * @param size      [in] ƒIƒuƒWƒFƒNƒgƒTƒCƒY 
    138  * @param dataSize  [in] ƒf[ƒ^ƒTƒCƒY 
    139  * 
    140  * @return          ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
     134/** メモリプール内でオブジェクトメモリを確保してチェインする 
     135 * 
     136 * @param pool      [in] メモリプール 
     137 * @param size      [in] オブジェクトサイズ 
     138 * @param dataSize  [in] データサイズ 
     139 * 
     140 * @return          オブジェクトデータ 
    141141 */ 
    142142 
     
    183183#pragma mark - 
    184184/*------------------------------------------------------------------------*/ 
    185 /** ƒIƒuƒWƒFƒNƒg‚ð‰ð•ú‚·‚é 
    186  * 
    187  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    188  * @param obj       [in] ƒIƒuƒWƒFƒNƒg 
    189  * 
    190  * @return          ‚È‚µ 
     185/** オブジェクトを解放する 
     186 * 
     187 * @param pool      [in] メモリプール 
     188 * @param obj       [in] オブジェクト 
     189 * 
     190 * @return          なし 
    191191 */ 
    192192 
     
    215215 
    216216/*------------------------------------------------------------------------*/ 
    217 /** ƒIƒuƒWƒFƒNƒgƒf[ƒ^‚Ƀ`ƒFƒCƒ“‚³‚ê‚Ä‚¢‚é‘S‚ẴIƒuƒWƒFƒNƒgƒf[ƒ^‚ð‰ð•ú‚·‚é 
    218  * 
    219  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    220  * @param objp      [i/o]ƒIƒuƒWƒFƒNƒgƒf[ƒ^‚ւ̃|ƒCƒ“ƒ^ 
    221  * 
    222  * @return          ‚È‚µ 
     217/** オブジェクトデータにチェインされている全てのオブジェクトデータを解放する 
     218 * 
     219 * @param pool      [in] メモリプール 
     220 * @param objp      [i/o]オブジェクトデータへのポインタ 
     221 * 
     222 * @return          なし 
    223223 */ 
    224224 
     
    239239 
    240240/*------------------------------------------------------------------------*/ 
    241 /** ƒƒ‚ƒŠƒv[ƒ‹‚̉ð•ú 
    242  * 
    243  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    244  * 
    245  * @return          ‚È‚µ 
     241/** メモリプールの解放 
     242 * 
     243 * @param pool      [in] メモリプール 
     244 * 
     245 * @return          なし 
    246246 */ 
    247247 
     
    266266#if 0 
    267267/*------------------------------------------------------------------------*/ 
    268 /** ƒIƒuƒWƒFƒNƒg‚̃}[ƒN‚ðƒNƒŠƒA‚·‚é 
    269  * 
    270  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    271  * 
    272  * @return          ‚È‚µ 
     268/** オブジェクトのマークをクリアする 
     269 * 
     270 * @param pool      [in] メモリプール 
     271 * 
     272 * @return          なし 
    273273 */ 
    274274 
     
    305305 
    306306/*------------------------------------------------------------------------*/ 
    307 /** ƒƒ‚ƒŠƒv[ƒ‹“à‚̃IƒuƒWƒFƒNƒg‚ðƒXƒEƒB[ƒvi‘|œj‚·‚é 
    308  * 
    309  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    310  * @param mark      [in] ƒ}[ƒNƒtƒ‰ƒO 
    311  * 
    312  * @return          ‚È‚µ 
     307/** メモリプール内のオブジェクトをスウィープ(掃除)する 
     308 * 
     309 * @param pool      [in] メモリプール 
     310 * @param mark      [in] マークフラグ 
     311 * 
     312 * @return          なし 
    313313 */ 
    314314 
     
    360360 
    361361/*------------------------------------------------------------------------*/ 
    362 /** ƒIƒuƒWƒFƒNƒg‚ðƒ}[ƒN‚·‚é 
    363  * 
    364  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    365  * @param mark      [in] ƒ}[ƒNƒtƒ‰ƒO 
    366  * 
    367  * @return          ‚È‚µ 
     362/** オブジェクトをマークする 
     363 * 
     364 * @param r         [in] オブジェクト 
     365 * @param mark      [in] マークフラグ 
     366 * 
     367 * @return          なし 
    368368 */ 
    369369 
     
    406406 
    407407/*------------------------------------------------------------------------*/ 
    408 /** ƒŒƒWƒXƒ^“à‚̃IƒuƒWƒFƒNƒg‚ðƒ}[ƒN‚·‚é 
    409  * 
    410  * @param reg       [in] ƒŒƒWƒXƒ^ 
    411  * @param mark      [in] ƒ}[ƒNƒtƒ‰ƒO 
    412  * 
    413  * @return          ‚È‚µ 
     408/** レジスタ内のオブジェクトをマークする 
     409 * 
     410 * @param reg       [in] レジスタ 
     411 * @param mark      [in] マークフラグ 
     412 * 
     413 * @return          なし 
    414414 */ 
    415415 
     
    424424 
    425425/*------------------------------------------------------------------------*/ 
    426 /** ƒXƒ^ƒbƒN“à‚̃IƒuƒWƒFƒNƒg‚ðƒ}[ƒN‚·‚é 
    427  * 
    428  * @param env       [in] ŽÀsŠÂ‹« 
    429  * @param mark      [in] ƒ}[ƒNƒtƒ‰ƒO 
    430  * 
    431  * @return          ‚È‚µ 
     426/** スタック内のオブジェクトをマークする 
     427 * 
     428 * @param env       [in] 実行環境 
     429 * @param mark      [in] マークフラグ 
     430 * 
     431 * @return          なし 
    432432 */ 
    433433 
     
    438438    uint32_t    i; 
    439439 
    440     // ƒXƒ^ƒbƒN 
     440    // スタック 
    441441    stack = (newtRef *)env->stack.stackp; 
    442442 
     
    446446    } 
    447447 
    448     // ŠÖ”ŒÄo‚µƒXƒ^ƒbƒN 
     448    // 関数呼出しスタック 
    449449    callstack = (vm_reg_t *)env->callstack.stackp; 
    450450 
     
    454454    } 
    455455 
    456     // —áŠOƒnƒ“ƒhƒ‰EƒXƒ^ƒbƒN 
     456    // 例外ハンドラ・スタック 
    457457    NewtGCRefMark(env->currexcp, mark); 
    458458 
     
    475475 
    476476/*------------------------------------------------------------------------*/ 
    477 /** ŽQÆ‚³‚ê‚Ä‚¢‚éƒIƒuƒWƒFƒNƒg‚ðƒ}[ƒN‚·‚é 
    478  * 
    479  * @param env       [in] ŽÀsŠÂ‹« 
    480  * @param mark      [in] ƒ}[ƒNƒtƒ‰ƒO 
    481  * 
    482  * @return          ‚È‚µ 
     477/** 参照されているオブジェクトをマークする 
     478 * 
     479 * @param env       [in] 実行環境 
     480 * @param mark      [in] マークフラグ 
     481 * 
     482 * @return          なし 
    483483 */ 
    484484 
     
    490490//    NewtGCRefMark(NSGetMagicPointers(), mark); 
    491491 
    492     // ƒŒƒWƒXƒ^ 
     492    // レジスタ 
    493493    NewtGCRegMark(&env->reg, mark); 
    494494 
    495     // ƒXƒ^ƒbƒN 
     495    // スタック 
    496496    NewtGCStackMark(env, mark); 
    497497} 
     
    499499 
    500500/*------------------------------------------------------------------------*/ 
    501 /** ƒKƒx[ƒWƒRƒŒƒNƒVƒ‡ƒ“‚ÌŽÀs 
    502  * 
    503  * @return          ‚È‚µ 
     501/** ガベージコレクションの実行 
     502 * 
     503 * @return          なし 
    504504 */ 
    505505 
     
    517517#pragma mark - 
    518518/*------------------------------------------------------------------------*/ 
    519 /** ƒXƒNƒŠƒvƒg‚©‚ç GC@‚ðŒÄo‚·iŽÀÛ‚É‚Í GC ‚ð—\–ñ‚·‚邾‚¯j 
    520  * 
    521  * @param rcvr      [in] ƒŒƒV[ƒo 
     519/** スクリプトから GC を呼出す(実際には GC を予約するだけ) 
     520 * 
     521 * @param rcvr      [in] レシーバ 
    522522 * 
    523523 * @return          NIL 
    524524 * 
    525  * @note            ƒXƒNƒŠƒvƒg‚©‚ç‚̌ďo‚µ—p 
     525 * @note            スクリプトからの呼出し用 
    526526 */ 
    527527 
  • NEWT0/trunk/src/newt_core/NewtIO.c

    r56 r68  
    22/** 
    33 * @file    NewtIO.c 
    4  * @brief   “üo—͏ˆ— 
     4 * @brief   入出力処理 
    55 * 
    66 * @author M.Nukui 
     
    1111 
    1212 
    13 /* ƒwƒbƒ_ƒtƒ@ƒCƒ‹ */ 
     13/* ヘッダファイル */ 
    1414#include <string.h> 
    1515#include <stdio.h> 
     
    2828 
    2929 
    30 /* ƒ}ƒNƒ */ 
     30/* マクロ */ 
    3131#if defined(HAVE_TERMIOS_H) 
    3232    #define newt_getch()    tcgetch(0) 
     
    3838 
    3939 
    40 /* ŠÖ”ƒvƒƒgƒ^ƒCƒv */ 
     40/* 関数プロトタイプ */ 
    4141static int  cbreak_and_noecho(int fd, int vmin, struct termios *tiosp); 
    4242static int  tcgetch(int fd); 
     
    4444 
    4545/*------------------------------------------------------------------------*/ 
    46 /** “üo—̓XƒgƒŠ[ƒ€\‘¢‘̂Ƀtƒ@ƒCƒ‹‚̏î•ñ‚ðƒZƒbƒg‚·‚é 
    47  * 
    48  * @param stream    [out]“üo—̓XƒgƒŠ[ƒ€ 
    49  * @param f         [in] ƒtƒ@ƒCƒ‹ 
    50  * 
    51  * @return          ‚È‚µ 
     46/** 入出力ストリーム構造体にファイルの情報をセットする 
     47 * 
     48 * @param stream    [out]入出力ストリーム 
     49 * @param f         [in] ファイル 
     50 * 
     51 * @return          なし 
    5252 */ 
    5353 
     
    6666 
    6767/*------------------------------------------------------------------------*/ 
    68 /** printf ƒtƒH[ƒ}ƒbƒg‚ŏo—Í‚·‚éi•s’è’·j 
    69  * 
    70  * @param stream    [in] o—̓XƒgƒŠ[ƒ€ 
    71  * @param format    [in] ƒtƒH[ƒ}ƒbƒg 
    72  * @param ...       [in] printf ˆø” 
    73  * 
    74  * @return          printf ‚Ì–ß‚è’l 
    75  * 
    76  * @note            newtStream_t ‚ðŽg—p 
     68/** printf フォーマットで出力する(不定長) 
     69 * 
     70 * @param stream    [in] 出力ストリーム 
     71 * @param format    [in] フォーマット 
     72 * @param ...       [in] printf 引数 
     73 * 
     74 * @return          printf の戻り値 
     75 * 
     76 * @note            newtStream_t を使用 
    7777 */ 
    7878 
     
    9191 
    9292/*------------------------------------------------------------------------*/ 
    93 /** vprintf ƒtƒH[ƒ}ƒbƒg‚ŏo—Í‚·‚é 
    94  * 
    95  * @param stream    [in] o—̓XƒgƒŠ[ƒ€ 
    96  * @param format    [in] ƒtƒH[ƒ}ƒbƒg 
    97  * @param ap        [in] vprintf ˆø” 
    98  * 
    99  * @return          vprintf ‚Ì–ß‚è’l 
    100  * 
    101  * @note            newtStream_t ‚ðŽg—p 
    102  *                  •¶Žš—ñ‚ɒljÁ‚·‚éê‡‚̐§ŒÀ NEWT_SNPRINTF_BUFFSIZE (NewtConf.h) 
     93/** vprintf フォーマットで出力する 
     94 * 
     95 * @param stream    [in] 出力ストリーム 
     96 * @param format    [in] フォーマット 
     97 * @param ap        [in] vprintf 引数 
     98 * 
     99 * @return          vprintf の戻り値 
     100 * 
     101 * @note            newtStream_t を使用 
     102 *                  文字列に追加する場合の制限 NEWT_SNPRINTF_BUFFSIZE (NewtConf.h) 
    103103 */ 
    104104 
     
    131131 
    132132/*------------------------------------------------------------------------*/ 
    133 /** •¶Žš‚ðo—Í‚·‚é 
    134  * 
    135  * @param c         [in] •¶Žš 
    136  * @param stream    [in] o—̓XƒgƒŠ[ƒ€ 
    137  * 
    138  * @return          fputc ‚Ì–ß‚è’l 
    139  * 
    140  * @note            newtStream_t ‚ðŽg—p 
     133/** 文字を出力する 
     134 * 
     135 * @param c         [in] 文字 
     136 * @param stream    [in] 出力ストリーム 
     137 * 
     138 * @return          fputc の戻り値 
     139 * 
     140 * @note            newtStream_t を使用 
    141141 */ 
    142142 
     
    162162 
    163163/*------------------------------------------------------------------------*/ 
    164 /** •¶Žš—ñ‚ðo—Í‚·‚é 
    165  * 
    166  * @param str       [in] •¶Žš—ñ 
    167  * @param stream    [in] o—̓XƒgƒŠ[ƒ€ 
    168  * 
    169  * @return          fputs ‚Ì–ß‚è’l 
    170  * 
    171  * @note            newtStream_t ‚ðŽg—p 
     164/** 文字列を出力する 
     165 * 
     166 * @param str       [in] 文字列 
     167 * @param stream    [in] 出力ストリーム 
     168 * 
     169 * @return          fputs の戻り値 
     170 * 
     171 * @note            newtStream_t を使用 
    172172 */ 
    173173 
     
    191191#pragma mark - 
    192192/*------------------------------------------------------------------------*/ 
    193 /** printf ƒtƒH[ƒ}ƒbƒg‚ŏo—Í‚·‚éi•s’è’·j 
    194  * 
    195  * @param f         [in] o—̓XƒgƒŠ[ƒ€ 
    196  * @param format    [in] ƒtƒH[ƒ}ƒbƒg 
    197  * @param ...       [in] printf ˆø” 
    198  * 
    199  * @return          printf ‚Ì–ß‚è’l 
     193/** printf フォーマットで出力する(不定長) 
     194 * 
     195 * @param f         [in] 出力ストリーム 
     196 * @param format    [in] フォーマット 
     197 * @param ...       [in] printf 引数 
     198 * 
     199 * @return          printf の戻り値 
    200200 */ 
    201201 
     
    217217 
    218218/*------------------------------------------------------------------------*/ 
    219 /** •¶Žš‚̏o—Í 
    220  * 
    221  * @param c         [in] •¶Žš 
    222  * @param f         [in] o—̓XƒgƒŠ[ƒ€ 
    223  * 
    224  * @return          fputc ‚Ì–ß‚è’l 
     219/** 文字の出力 
     220 * 
     221 * @param c         [in] 文字 
     222 * @param f         [in] 出力ストリーム 
     223 * 
     224 * @return          fputc の戻り値 
    225225 */ 
    226226 
     
    235235 
    236236/*------------------------------------------------------------------------*/ 
    237 /** •¶Žš‚̏o—Í 
    238  * 
    239  * @param str       [in] •¶Žš—ñ 
    240  * @param f         [in] o—̓XƒgƒŠ[ƒ€ 
    241  * 
    242  * @return          fputs ‚Ì–ß‚è’l 
     237/** 文字の出力 
     238 * 
     239 * @param str       [in] 文字列 
     240 * @param f         [in] 出力ストリーム 
     241 * 
     242 * @return          fputs の戻り値 
    243243 */ 
    244244 
     
    254254#pragma mark - 
    255255/*------------------------------------------------------------------------*/ 
    256 /** printf ƒtƒH[ƒ}ƒbƒg‚ŏo—Í‚·‚éi•s’è’·j 
    257  * 
    258  * @param title     [in] ƒ^ƒCƒgƒ‹ 
    259  * @param format    [in] ƒtƒH[ƒ}ƒbƒg 
    260  * @param ...       [in] printf ˆø” 
    261  * 
    262  * @return          printf ‚Ì–ß‚è’l 
     256/** printf フォーマットで出力する(不定長) 
     257 * 
     258 * @param title     [in] タイトル 
     259 * @param format    [in] フォーマット 
     260 * @param ...       [in] printf 引数 
     261 * 
     262 * @return          printf の戻り値 
    263263 */ 
    264264 
     
    288288#pragma mark - 
    289289/*------------------------------------------------------------------------*/ 
    290 /** “ü—̓XƒgƒŠ[ƒ€‚©‚ç•¶Žš—ñ‚ðŽæo‚· 
    291  * 
    292  * @param stream    [in] “ü—̓XƒgƒŠ[ƒ€ 
    293  * 
    294  * @retval          •¶Žš—ñƒIƒuƒWƒFƒNƒg  “ü—̓f[ƒ^‚ª‘¶Ý‚·‚éê‡ 
    295  * @retval          NIL             “ü—̓f[ƒ^‚ª‘¶Ý‚µ‚È‚¢ê‡ 
    296  * 
    297  * @note            §ŒÀ NEWT_FGETS_BUFFSIZE (NewtConf.h) 
     290/** 入力ストリームから文字列を取出す 
     291 * 
     292 * @param stream    [in] 入力ストリーム 
     293 * 
     294 * @retval          文字列オブジェクト   入力データが存在する場合 
     295 * @retval          NIL             入力データが存在しない場合 
     296 * 
     297 * @note            制限 NEWT_FGETS_BUFFSIZE (NewtConf.h) 
    298298 */ 
    299299 
     
    315315 
    316316        if (result == kNewtRefNIL) 
    317         {   // •¶Žš—ñƒIƒuƒWƒFƒNƒgì¬ 
     317        {   // 文字列オブジェクト作成 
    318318            result = NewtMakeString2(str, len, false); 
    319319 
    320320            if (NewtRefIsNIL(result)) 
    321             {   // ƒƒ‚ƒŠ‚ðŠm•Û‚Å‚«‚È‚©‚Á‚½ 
     321            {   // メモリを確保できなかった 
    322322                return NewtThrow0(kNErrOutOfObjectMemory); 
    323323            } 
    324324        } 
    325325        else 
    326         {   // ’ljÁ 
     326        {   // 追加 
    327327            oldlen = NewtStringLength(result); 
    328328            result = NewtStrCat2(result, str, len); 
    329329 
    330330            if (NewtStringLength(result) < oldlen + len) 
    331             {   // ƒƒ‚ƒŠ‚ðŠm•Û‚Å‚«‚È‚©‚Á‚½ 
     331            {   // メモリを確保できなかった 
    332332                return NewtThrow0(kNErrOutOfObjectMemory); 
    333333            } 
     
    337337            break; 
    338338 
    339         // ÅŒã‚Ì•¶Žš‚ðƒ`ƒFƒbƒN 
     339        // 最後の文字をチェック 
    340340        c = buff[maxsize - 1]; 
    341341 
     
    345345        if (c == '\r') 
    346346        { 
    347             // ‚P•¶Žšæ“ǂݠ
     347            // 1文字先読み 
    348348            c = fgetc(stream); 
    349349 
    350350            if (c != '\n') 
    351             {   // CRLF ‚łȂ¢iCR ‚̂݁jê‡ 
    352                 // æ“ǂ݂µ‚½•¶Žš‚ðƒXƒgƒŠ[ƒ€‚É–ß‚· 
     351            {   // CRLF でない(CR のみ)場合 
     352                // 先読みした文字をストリームに戻す 
    353353                ungetc(c, stream); 
    354354                break; 
     
    362362 
    363363/*------------------------------------------------------------------------*/ 
    364 /** •W€“ü—Í‚©‚ç•¶Žš—ñ‚ðŽæo‚· 
    365  * 
    366  * @param rcvr      [in] ƒŒƒV[ƒo 
    367  * 
    368  * @retval          •¶Žš—ñƒIƒuƒWƒFƒNƒg  “ü—̓f[ƒ^‚ª‘¶Ý‚·‚éê‡ 
    369  * @retval          NIL             “ü—̓f[ƒ^‚ª‘¶Ý‚µ‚È‚¢ê‡ 
     364/** 標準入力から文字列を取出す 
     365 * 
     366 * @param rcvr      [in] レシーバ 
     367 * 
     368 * @retval          文字列オブジェクト   入力データが存在する場合 
     369 * @retval          NIL             入力データが存在しない場合 
    370370 */ 
    371371 
     
    377377 
    378378/*------------------------------------------------------------------------*/ 
    379 /** “ü—̓XƒgƒŠ[ƒ€‚©‚ç•¶Žš‚ðŽæo‚· 
    380  * 
    381  * @param stream    [in] “ü—̓XƒgƒŠ[ƒ€ 
    382  * 
    383  * @retval          •¶ŽšƒIƒuƒWƒFƒNƒg    “ü—̓f[ƒ^‚ª‘¶Ý‚·‚éê‡ 
     379/** 入力ストリームから文字を取出す 
     380 * 
     381 * @param stream    [in] 入力ストリーム 
     382 * 
     383 * @retval          文字オブジェクト    入力データが存在する場合 
    384384 * @retval          NIL             EOF 
    385385 */ 
     
    399399 
    400400/*------------------------------------------------------------------------*/ 
    401 /** •W€“ü—Í‚©‚ç•¶Žš‚ðŽæo‚· 
    402  * 
    403  * @param rcvr      [in] ƒŒƒV[ƒo 
    404  * 
    405  * @retval          •¶ŽšƒIƒuƒWƒFƒNƒg    “ü—̓f[ƒ^‚ª‘¶Ý‚·‚éê‡ 
    406  * @retval          NIL             “ü—̓f[ƒ^‚ª‘¶Ý‚µ‚È‚¢ê‡ 
     401/** 標準入力から文字を取出す 
     402 * 
     403 * @param rcvr      [in] レシーバ 
     404 * 
     405 * @retval          文字オブジェクト    入力データが存在する場合 
     406 * @retval          NIL             入力データが存在しない場合 
    407407 */ 
    408408 
     
    416416 
    417417/*------------------------------------------------------------------------*/ 
    418 /** ƒ^[ƒ~ƒiƒ‹‚ð”ñƒJƒmƒjƒJƒ‹ƒ‚[ƒh‚¨‚æ‚уGƒR[‚È‚µ‚ɐݒ肷‚é 
    419  * 
    420  * @param fd        [in] ƒ^[ƒ~ƒiƒ‹ 
    421  * @param vmin      [in] ”ñƒJƒmƒjƒJƒ‹“ǂݍž‚ÝŽž‚̍ŏ¬•¶Žš” 
    422  * @param tiosp     [out]•ύX‘O‚Ì termios\‘¢‘Ì 
    423  * 
    424  * @retval          0           ³íI—¹ 
    425  * @retval          0ˆÈŠO       ƒGƒ‰[ 
     418/** ターミナルを非カノニカルモードおよびエコーなしに設定する 
     419 * 
     420 * @param fd        [in] ターミナル 
     421 * @param vmin      [in] 非カノニカル読み込み時の最小文字数 
     422 * @param tiosp     [out]変更前の termios構造体 
     423 * 
     424 * @retval          0           正常終了 
     425 * @retval          0以外     エラー 
    426426 */ 
    427427 
     
    446446 
    447447/*------------------------------------------------------------------------*/ 
    448 /** ƒ^[ƒ~ƒiƒ‹‚©‚ç“ü—Í•¶Žš‚ð‚P•¶ŽšŽæ“¾ 
    449  * 
    450  * @param fd        [in] ƒ^[ƒ~ƒiƒ‹ 
    451  * 
    452  * @retval          •¶Žšƒf[ƒ^  “ü—̓f[ƒ^‚ª‘¶Ý‚·‚éê‡ 
    453  * @retval          0           “ü—̓f[ƒ^‚ª‘¶Ý‚µ‚È‚¢ê‡ 
     448/** ターミナルから入力文字を1文字取得 
     449 * 
     450 * @param fd        [in] ターミナル 
     451 * 
     452 * @retval          文字データ   入力データが存在する場合 
     453 * @retval          0           入力データが存在しない場合 
    454454 */ 
    455455 
     
    477477 
    478478/*------------------------------------------------------------------------*/ 
    479 /** ƒL[ƒ{[ƒh‚©‚ç“ü—Í•¶Žš‚ð‚P•¶ŽšŽæ“¾ 
    480  * 
    481  * @param rcvr      [in] ƒŒƒV[ƒo 
    482  * 
    483  * @retval          •¶ŽšƒIƒuƒWƒFƒNƒg    “ü—̓f[ƒ^‚ª‘¶Ý‚·‚éê‡ 
    484  * @retval          NIL             “ü—̓f[ƒ^‚ª‘¶Ý‚µ‚È‚¢ê‡ 
     479/** キーボードから入力文字を1文字取得 
     480 * 
     481 * @param rcvr      [in] レシーバ 
     482 * 
     483 * @retval          文字オブジェクト    入力データが存在する場合 
     484 * @retval          NIL             入力データが存在しない場合 
    485485 */ 
    486486 
  • NEWT0/trunk/src/newt_core/NewtIconv.c

    r53 r68  
    11/** 
    22 * @file    NewtIconv.c 
    3  * @brief   •¶ŽšƒR[ƒhˆ—ilibiconvŽg—pj 
     3 * @brief   文字コード処理(libiconv使用) 
    44 * 
    55 * @author  M.Nukui 
     
    1010 
    1111 
    12 /* ƒwƒbƒ_ƒtƒ@ƒCƒ‹ */ 
     12/* ヘッダファイル */ 
    1313#include "NewtIconv.h" 
    1414 
     
    1616#ifdef HAVE_LIBICONV 
    1717/*------------------------------------------------------------------------*/ 
    18 /** NSOFƒoƒbƒtƒ@‚ð“Ǎž‚ñ‚Å”z—ñƒIƒuƒWƒFƒNƒg‚ɕϊ·‚·‚é 
     18/** NSOFバッファを読込んで配列オブジェクトに変換する 
    1919 * 
    20  * @param cd        [in] iconv•ÏŠ·ƒfƒBƒXƒNƒŠƒvƒ^[ 
    21  * @param src       [in] •ÏŠ·‚·‚é•¶Žš—ñ 
    22  * @param srclen    [in] •ÏŠ·‚·‚é•¶Žš—ñ‚Ì’·‚³ 
    23  * @param dstlenp   [out]•ÏŠ·‚³‚ꂽ•¶Žš—ñ‚Ì’·‚³ 
     20 * @param cd        [in] iconv変換ディスクリプター 
     21 * @param src       [in] 変換する文字列 
     22 * @param srclen    [in] 変換する文字列の長さ 
     23 * @param dstlenp   [out]変換された文字列の長さ 
    2424 * 
    25  * @return          •ÏŠ·‚³‚ꂽ•¶Žš—ñ 
     25 * @return          変換された文字列 
    2626 * 
    27  * @note            •ÏŠ·‚³‚ꂽ•¶Žš—ñ‚͌ďo‚µŒ³‚Å free ‚·‚é•K—v‚ ‚è 
     27 * @note            変換された文字列は呼出し元で free する必要あり 
    2828 */ 
    2929 
     
    5252 
    5353            if (status == (size_t)-1) 
    54             {   // •ÏŠ·‚ÉŽ¸”s‚µ‚½‚̂Ńoƒbƒtƒ@‚ð‰ð•ú‚·‚é 
     54            {   // 変換に失敗したのでバッファを解放する 
    5555                free(dst); 
    5656                dst = NULL; 
    5757            } 
    5858            else 
    59             {   // ‚¢‚ç‚È‚¢•”•ª‚̃oƒbƒtƒ@‚ðØ‚è‹l‚ß‚é 
     59            {   // いらない部分のバッファを切り詰める 
    6060                dstlen = bufflen - outbytesleft; 
    6161                dst = realloc(dst, dstlen); 
  • NEWT0/trunk/src/newt_core/NewtMem.c

    r1 r68  
    22/** 
    33 * @file    NewtMem.c 
    4  * @brief   ƒƒ‚ƒŠŠÇ— 
     4 * @brief   メモリ管理 
    55 * 
    66 * @author  M.Nukui 
     
    1111 
    1212 
    13 /* ƒwƒbƒ_ƒtƒ@ƒCƒ‹ */ 
     13/* ヘッダファイル */ 
    1414#include <string.h> 
    1515#include "NewtMem.h" 
     
    1717 
    1818/*------------------------------------------------------------------------*/ 
    19 /** ƒƒ‚ƒŠƒv[ƒ‹‚ÌŠm•Û 
    20  * 
    21  * @param expandspace   [in] ƒuƒƒbƒN‚ÌŠg’£ƒTƒCƒY 
    22  * 
    23  * @return              ƒƒ‚ƒŠƒv[ƒ‹ 
     19/** メモリプールの確保 
     20 * 
     21 * @param expandspace   [in] ブロックの拡張サイズ 
     22 * 
     23 * @return              メモリプール 
    2424 */ 
    2525 
     
    4040 
    4141/*------------------------------------------------------------------------*/ 
    42 /** ƒƒ‚ƒŠƒv[ƒ‹‚©‚çŽw’肳‚ꂽƒTƒCƒY‚̃ƒ‚ƒŠ‚ðŠm•Û‚·‚é 
    43  * 
    44  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    45  * @param size      [in] ƒf[ƒ^ƒTƒCƒY 
    46  * 
    47  * @return          Šm•Û‚µ‚½ƒƒ‚ƒŠ‚ւ̃|ƒCƒ“ƒ^ 
    48  * 
    49  * @note            Œ»Ý‚͂܂¾“ÆŽ©ƒƒ‚ƒŠŠÇ—‚͍s‚í‚ê‚Ä‚¢‚È‚¢ 
     42/** メモリプールから指定されたサイズのメモリを確保する 
     43 * 
     44 * @param pool      [in] メモリプール 
     45 * @param size      [in] データサイズ 
     46 * 
     47 * @return          確保したメモリへのポインタ 
     48 * 
     49 * @note            現在はまだ独自メモリ管理は行われていない 
    5050 */ 
    5151 
     
    6161 
    6262/*------------------------------------------------------------------------*/ 
    63 /** ƒƒ‚ƒŠƒv[ƒ‹‚©‚çŽw’肳‚ꂽƒTƒCƒY‚̃ƒ‚ƒŠ‚ðŠm•Û‚·‚é 
    64  * 
    65  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    66  * @param number    [in] ƒf[ƒ^” 
    67  * @param size      [in] ƒf[ƒ^ƒTƒCƒY 
    68  * 
    69  * @return          Šm•Û‚µ‚½ƒƒ‚ƒŠ‚ւ̃|ƒCƒ“ƒ^ 
    70  * 
    71  * @note            Œ»Ý‚͂܂¾“ÆŽ©ƒƒ‚ƒŠŠÇ—‚͍s‚í‚ê‚Ä‚¢‚È‚¢ 
     63/** メモリプールから指定されたサイズのメモリを確保する 
     64 * 
     65 * @param pool      [in] メモリプール 
     66 * @param number    [in] データ数 
     67 * @param size      [in] データサイズ 
     68 * 
     69 * @return          確保したメモリへのポインタ 
     70 * 
     71 * @note            現在はまだ独自メモリ管理は行われていない 
    7272 */ 
    7373 
     
    8383 
    8484/*------------------------------------------------------------------------*/ 
    85 /** ƒƒ‚ƒŠƒv[ƒ‹‚©‚çŽw’肳‚ꂽƒTƒCƒY‚̃ƒ‚ƒŠ‚ðÄŠm•Û‚·‚é 
    86  * 
    87  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    88  * @param ptr       [in] ƒƒ‚ƒŠ‚ւ̃|ƒCƒ“ƒ^ 
    89  * @param size      [in] ƒf[ƒ^ƒTƒCƒY 
    90  * 
    91  * @return          ÄŠm•Û‚µ‚½ƒƒ‚ƒŠ‚ւ̃|ƒCƒ“ƒ^ 
    92  * 
    93  * @note            Œ»Ý‚͂܂¾“ÆŽ©ƒƒ‚ƒŠŠÇ—‚͍s‚í‚ê‚Ä‚¢‚È‚¢ 
     85/** メモリプールから指定されたサイズのメモリを再確保する 
     86 * 
     87 * @param pool      [in] メモリプール 
     88 * @param ptr       [in] メモリへのポインタ 
     89 * @param size      [in] データサイズ 
     90 * 
     91 * @return          再確保したメモリへのポインタ 
     92 * 
     93 * @note            現在はまだ独自メモリ管理は行われていない 
    9494 */ 
    9595 
     
    105105 
    106106/*------------------------------------------------------------------------*/ 
    107 /** ƒƒ‚ƒŠ‚ð‰ð•ú‚·‚é 
    108  * 
    109  * @param ptr       [in] ƒƒ‚ƒŠ‚ւ̃|ƒCƒ“ƒ^ 
    110  * 
    111  * @return          ‚È‚µ 
    112  * 
    113  * @note            Œ»Ý‚͂܂¾“ÆŽ©ƒƒ‚ƒŠŠÇ—‚͍s‚í‚ê‚Ä‚¢‚È‚¢ 
     107/** メモリを解放する 
     108 * 
     109 * @param ptr       [in] メモリへのポインタ 
     110 * 
     111 * @return          なし 
     112 * 
     113 * @note            現在はまだ独自メモリ管理は行われていない 
    114114 */ 
    115115 
     
    122122#pragma mark - 
    123123/*------------------------------------------------------------------------*/ 
    124 /** ƒXƒ^ƒbƒNî•ñ‚ðƒZƒbƒgƒAƒbƒv 
    125  * 
    126  * @param stackinfo [out]ƒXƒ^ƒbƒNî•ñ 
    127  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    128  * @param datasize  [in] ƒf[ƒ^ƒTƒCƒY 
    129  * @param blocksize [in] ƒuƒƒbƒNƒTƒCƒY 
    130  * 
    131  * @return          ‚È‚µ 
     124/** スタック情報をセットアップ 
     125 * 
     126 * @param stackinfo [out]スタック情報 
     127 * @param pool      [in] メモリプール 
     128 * @param datasize  [in] データサイズ 
     129 * @param blocksize [in] ブロックサイズ 
     130 * 
     131 * @return          なし 
    132132 */ 
    133133 
     
    144144 
    145145/*------------------------------------------------------------------------*/ 
    146 /** ƒXƒ^ƒbƒN‚ð‰ð•ú 
    147  * 
    148  * @param stackinfo [in] ƒXƒ^ƒbƒNî•ñ 
    149  * 
    150  * @return          ‚È‚µ 
     146/** スタックを解放 
     147 * 
     148 * @param stackinfo [in] スタック情報 
     149 * 
     150 * @return          なし 
    151151 */ 
    152152 
     
    165165 
    166166/*------------------------------------------------------------------------*/ 
    167 /** ƒXƒ^ƒbƒN‚ðŠg’£ 
    168  * 
    169  * @param stackinfo [in] ƒXƒ^ƒbƒNî•ñ 
    170  * @param n         [in] •K—v‚Æ‚³‚ê‚Ä‚¢‚éƒXƒ^ƒbƒN’· 
    171  * 
    172  * @retval          true    •K—v‚È‚¾‚¯Šm•Û‚³‚ê‚Ä‚¢‚é 
    173  * @retval          false   Šm•Û‚Å‚«‚È‚©‚Á‚½ 
     167/** スタックを拡張 
     168 * 
     169 * @param stackinfo [in] スタック情報 
     170 * @param n         [in] 必要とされているスタック長 
     171 * 
     172 * @retval          true    必要なだけ確保されている 
     173 * @retval          false   確保できなかった 
    174174 */ 
    175175 
     
    198198 
    199199/*------------------------------------------------------------------------*/ 
    200 /** ƒXƒ^ƒbƒN‚ðƒXƒŠƒ€‰» 
    201  * 
    202  * @param stackinfo [in] ƒXƒ^ƒbƒNî•ñ 
    203  * @param n         [in] •K—v‚Æ‚³‚ê‚Ä‚¢‚éƒXƒ^ƒbƒN’· 
    204  * 
    205  * @return          ‚È‚µ 
     200/** スタックをスリム化 
     201 * 
     202 * @param stackinfo [in] スタック情報 
     203 * @param n         [in] 必要とされているスタック長 
     204 * 
     205 * @return          なし 
    206206 */ 
    207207 
     
    231231#pragma mark - 
    232232/*------------------------------------------------------------------------*/ 
    233 /** ƒAƒ‰ƒCƒ“‚ðŒvŽZ 
    234  * 
    235  * @param n         [in] ƒAƒ‰ƒCƒ“‚·‚é’l 
    236  * @param byte      [in] ƒAƒ‰ƒCƒ“‚³‚ê‚é’PˆÊ 
    237  * 
    238  * @return          ƒAƒ‰ƒCƒ“‚³‚ꂽ’l 
     233/** アラインを計算 
     234 * 
     235 * @param n         [in] アラインする値 
     236 * @param byte      [in] アラインされる単位 
     237 * 
     238 * @return          アラインされた値 
    239239 */ 
    240240 
  • NEWT0/trunk/src/newt_core/NewtNSOF.c

    r64 r68  
    1111 
    1212 
    13 /* ƒwƒbƒ_ƒtƒ@ƒCƒ‹ */ 
     13/* ヘッダファイル */ 
    1414#include <string.h> 
    1515 
     
    2424#include "utils/endian_utils.h" 
    2525 
    26 /* ƒ}ƒNƒ */ 
    27 #define NSOFIsNOS(verno)    ((verno == 1) || (verno == 2))  ///< Newton OS@ŒÝŠ·‚Ì NSOF 
    28  
    29  
    30  
    31 /* Œ^éŒ¾ */ 
    32  
    33 /// NSOF•ÏŠ·‚ÉŽg—p‚·‚é iconv•ÏŠ·ƒfƒBƒXƒNƒŠƒvƒ^[ 
     26/* マクロ */ 
     27#define NSOFIsNOS(verno)    ((verno == 1) || (verno == 2))  ///< Newton OS 互換の NSOF 
     28 
     29 
     30 
     31/* 型宣言 */ 
     32 
     33/// NSOF変換に使用する iconv変換ディスクリプター 
    3434#ifdef HAVE_LIBICONV 
    3535typedef struct { 
    36     iconv_t     utf16be;    ///< iconv•ÏŠ·ƒfƒBƒXƒNƒŠƒvƒ^[iUTF16-BEj 
    37     iconv_t     macroman;   ///< iconv•ÏŠ·ƒfƒBƒXƒNƒŠƒvƒ^[iMACROMANj 
     36    iconv_t     utf16be;    ///< iconv変換ディスクリプター(UTF16-BE) 
     37    iconv_t     macroman;   ///< iconv変換ディスクリプター(MACROMAN) 
    3838} nsof_iconv_t; 
    3939#endif /* HAVE_LIBICONV */ 
    4040 
    41 /// NSOFƒXƒgƒŠ[ƒ€\‘¢‘Ì 
     41/// NSOFストリーム構造体 
    4242typedef struct { 
    43     int32_t     verno;          ///< NSOFƒo[ƒWƒ‡ƒ“”ԍ† 
    44     uint8_t *   data;           ///< ƒf[ƒ^ 
    45     uint32_t    len;            ///< ƒf[ƒ^‚Ì’·‚³ 
    46     uint32_t    offset;         ///< ì‹Æ’†‚̈ʒu 
    47     newtRefVar  precedents;     ///< oŒ»Ï‚݃IƒuƒWƒFƒNƒg‚ÌƒŠƒXƒg 
    48     newtErr     lastErr;        ///< ÅŒã‚̃Gƒ‰[ƒR[ƒh 
     43    int32_t     verno;          ///< NSOFバージョン番号 
     44    uint8_t *   data;           ///< データ 
     45    uint32_t    len;            ///< データの長さ 
     46    uint32_t    offset;         ///< 作業中の位置 
     47    newtRefVar  precedents;     ///< 出現済みオブジェクトのリスト 
     48    newtErr     lastErr;        ///< 最後のエラーコード 
    4949 
    5050#ifdef HAVE_LIBICONV 
    5151    struct { 
    52         nsof_iconv_t    to;     ///< NSOFƒGƒ“ƒR[ƒfƒBƒ“ƒO‚ւ̕ϊ·—p 
    53         nsof_iconv_t    from;   ///< NSOFƒGƒ“ƒR[ƒfƒBƒ“ƒO‚©‚ç‚̕ϊ·—p 
    54     } cd; ///< iconv•ÏŠ·ƒfƒBƒXƒNƒŠƒvƒ^[ 
     52        nsof_iconv_t    to;     ///< NSOFエンコーディングへの変換用 
     53        nsof_iconv_t    from;   ///< NSOFエンコーディングからの変換用 
     54    } cd; ///< iconv変換ディスクリプター 
    5555#endif /* HAVE_LIBICONV */ 
    5656} nsof_stream_t; 
    5757 
    5858 
    59 /* ŠÖ”ƒvƒƒgƒ^ƒCƒv */ 
     59/* 関数プロトタイプ */ 
    6060static bool         NewtRefIsByte(newtRefArg r); 
    6161static bool         NewtRefIsSmallRect(newtRefArg r); 
     
    8989#pragma mark - 
    9090/*------------------------------------------------------------------------*/ 
    91 /** ƒIƒuƒWƒFƒNƒg‚ª 0`255 ‚̐®”‚©ƒ`ƒFƒbƒN‚·‚é 
    92  * 
    93  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    94  * 
    95  * @retval          true    0`255 ‚̐®” 
    96  * @retval          false   0`255 ‚̐®”‚łȂ¢ 
     91/** オブジェクトが 0〜255 の整数かチェックする 
     92 * 
     93 * @param r         [in] オブジェクト 
     94 * 
     95 * @retval          true    0〜255 の整数 
     96 * @retval          false   0〜255 の整数でない 
    9797 */ 
    9898 
     
    114114 
    115115/*------------------------------------------------------------------------*/ 
    116 /** ƒtƒŒ[ƒ€‚ª NSOF(smallRect) ‚ÌðŒ‚ð–ž‚½‚·‚©ƒ`ƒFƒbƒN‚·‚é 
    117  * 
    118  * @param r         [in] ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg 
    119  * 
    120  * @retval          true    ðŒ‚ð–ž‚½‚· 
    121  * @retval          false   ðŒ‚ð–ž‚½‚³‚È‚¢ 
     116/** フレームが NSOF(smallRect) の条件を満たすかチェックする 
     117 * 
     118 * @param r         [in] フレームオブジェクト 
     119 * 
     120 * @retval          true    条件を満たす 
     121 * @retval          false   条件を満たさない 
    122122 */ 
    123123 
     
    140140 
    141141/*------------------------------------------------------------------------*/ 
    142 /** ”z—ñ‚©‚çƒIƒuƒWƒFƒNƒg‚ð’T‚· 
    143  * 
    144  * @param array     [in] ”z—ñ 
    145  * @param r         [in] ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg 
    146  * 
    147  * @retval          0ˆÈã   Œ©‚‚©‚Á‚½ˆÊ’u 
    148  * @retval          -1      Œ©‚‚©‚ç‚È‚©‚Á‚½ 
     142/** 配列からオブジェクトを探す 
     143 * 
     144 * @param array     [in] 配列 
     145 * @param r         [in] フレームオブジェクト 
     146 * 
     147 * @retval          0以上 見つかった位置 
     148 * @retval          -1      見つからなかった 
    149149 */ 
    150150 
     
    170170#pragma mark - 
    171171/*------------------------------------------------------------------------*/ 
    172 /** 1byte ‚ð NSOF ‚Ńoƒbƒtƒ@‚ɏ‘ž‚Þ 
    173  * 
    174  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    175  * @param value     [in] 1byte@ƒf[ƒ^ 
    176  * 
    177  * @return          ƒGƒ‰[ƒR[ƒh 
    178  * 
    179  * @note            nsof->data ‚ª NULL ‚̏ꍇ‚Í nsof->offset ‚̂ݍXV‚³‚ê‚é 
     172/** 1byte を NSOF でバッファに書込む 
     173 * 
     174 * @param nsof      [i/o]NSOFバッファ 
     175 * @param value     [in] 1byte データ 
     176 * 
     177 * @return          エラーコード 
     178 * 
     179 * @note            nsof->data が NULL の場合は nsof->offset のみ更新される 
    180180 */ 
    181181  
     
    185185    { 
    186186        if (nsof->len <= nsof->offset) 
    187         {   // ƒoƒbƒtƒ@‚ð‰z‚¦‚½ 
     187        {   // バッファを越えた 
    188188            nsof->lastErr = kNErrOutOfRange; 
    189189            return nsof->lastErr; 
     
    200200 
    201201/*------------------------------------------------------------------------*/ 
    202 /** ƒf[ƒ^‚ð xlong Œ`Ž®‚Ńoƒbƒtƒ@‚ɏ‘ž‚Þ 
    203  * 
    204  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    205  * @param value     [in] ƒf[ƒ^ 
    206  * 
    207  * @return          ƒGƒ‰[ƒR[ƒh 
    208  * 
    209  * @note            nsof->data ‚ª NULL ‚̏ꍇ‚Í nsof->offset ‚̂ݍXV‚³‚ê‚é 
     202/** データを xlong 形式でバッファに書込む 
     203 * 
     204 * @param nsof      [i/o]NSOFバッファ 
     205 * @param value     [in] データ 
     206 * 
     207 * @return          エラーコード 
     208 * 
     209 * @note            nsof->data が NULL の場合は nsof->offset のみ更新される 
    210210 */ 
    211211 
     
    230230 
    231231/*------------------------------------------------------------------------*/ 
    232 /** NSOFƒoƒbƒtƒ@ ‚©‚çƒf[ƒ^‚ð 1byte “Ǎž‚Þ 
    233  * 
    234  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    235  * 
    236  * @return          1byte ƒf[ƒ^ 
     232/** NSOFバッファ からデータを 1byte 読込む 
     233 * 
     234 * @param nsof      [i/o]NSOFバッファ 
     235 * 
     236 * @return          1byte データ 
    237237 */ 
    238238  
     
    242242 
    243243    if (nsof->len <= nsof->offset) 
    244     {   // ƒoƒbƒtƒ@‚ð‰z‚¦‚½ 
     244    {   // バッファを越えた 
    245245        nsof->lastErr = kNErrNotABinaryObject; 
    246246        return 0; 
     
    255255 
    256256/*------------------------------------------------------------------------*/ 
    257 /** NSOFƒoƒbƒtƒ@ ‚©‚çƒf[ƒ^‚ð xlong Œ`Ž®‚œǍž‚Þ 
    258  * 
    259  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    260  * 
    261  * @return          ƒf[ƒ^ 
     257/** NSOFバッファ からデータを xlong 形式で読込む 
     258 * 
     259 * @param nsof      [i/o]NSOFバッファ 
     260 * 
     261 * @return          データ 
    262262 */ 
    263263 
     
    282282#pragma mark - 
    283283/*------------------------------------------------------------------------*/ 
    284 /** oŒ»Ï‚݃f[ƒ^‚ð NSOF ‚Ńoƒbƒtƒ@‚ɏ‘ž‚Þ 
    285  * 
    286  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    287  * @param pos       [in] oŒ»ˆÊ’u 
    288  * 
    289  * @return          ƒGƒ‰[ƒR[ƒh 
    290  * 
    291  * @note            nsof->data ‚ª NULL ‚̏ꍇ‚Í nsof->offset ‚̂ݍXV‚³‚ê‚é 
     284/** 出現済みデータを NSOF でバッファに書込む 
     285 * 
     286 * @param nsof      [i/o]NSOFバッファ 
     287 * @param pos       [in] 出現位置 
     288 * 
     289 * @return          エラーコード 
     290 * 
     291 * @note            nsof->data が NULL の場合は nsof->offset のみ更新される 
    292292 */ 
    293293  
     
    302302 
    303303/*------------------------------------------------------------------------*/ 
    304 /** ‘¦’lƒf[ƒ^‚ð NSOF ‚Ńoƒbƒtƒ@‚ɏ‘ž‚Þ 
    305  * 
    306  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    307  * @param r         [in] ‘¦’lƒf[ƒ^ 
    308  * 
    309  * @return          ƒGƒ‰[ƒR[ƒh 
    310  * 
    311  * @note            nsof->data ‚ª NULL ‚̏ꍇ‚Í nsof->offset ‚̂ݍXV‚³‚ê‚é 
     304/** 即値データを NSOF でバッファに書込む 
     305 * 
     306 * @param nsof      [i/o]NSOFバッファ 
     307 * @param r         [in] 即値データ 
     308 * 
     309 * @return          エラーコード 
     310 * 
     311 * @note            nsof->data が NULL の場合は nsof->offset のみ更新される 
    312312 */ 
    313313  
     
    322322 
    323323/*------------------------------------------------------------------------*/ 
    324 /** •¶Žšƒf[ƒ^‚ð NSOF ‚Ńoƒbƒtƒ@‚ɏ‘ž‚Þ 
    325  * 
    326  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    327  * @param r         [in] •¶Žšƒf[ƒ^ 
    328  * 
    329  * @return          ƒGƒ‰[ƒR[ƒh 
    330  * 
    331  * @note            nsof->data ‚ª NULL ‚̏ꍇ‚Í nsof->offset ‚̂ݍXV‚³‚ê‚é 
     324/** 文字データを NSOF でバッファに書込む 
     325 * 
     326 * @param nsof      [i/o]NSOFバッファ 
     327 * @param r         [in] 文字データ 
     328 * 
     329 * @return          エラーコード 
     330 * 
     331 * @note            nsof->data が NULL の場合は nsof->offset のみ更新される 
    332332 */ 
    333333 
     
    355355 
    356356/*------------------------------------------------------------------------*/ 
    357 /** ƒoƒCƒiƒŠƒf[ƒ^‚ð NSOF ‚Ńoƒbƒtƒ@‚ɏ‘ž‚Þ 
    358  * 
    359  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    360  * @param r         [in] ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg 
    361  * @param objtype   [in] ƒIƒuƒWƒFƒNƒgƒ^ƒCƒv 
    362  * 
    363  * @return          ƒGƒ‰[ƒR[ƒh 
    364  * 
    365  * @note            nsof->data ‚ª NULL ‚̏ꍇ‚Í nsof->offset ‚̂ݍXV‚³‚ê‚é 
     357/** バイナリデータを NSOF でバッファに書込む 
     358 * 
     359 * @param nsof      [i/o]NSOFバッファ 
     360 * @param r         [in] バイナリオブジェクト 
     361 * @param objtype   [in] オブジェクトタイプ 
     362 * 
     363 * @return          エラーコード 
     364 * 
     365 * @note            nsof->data が NULL の場合は nsof->offset のみ更新される 
    366366 */ 
    367367 
     
    452452 
    453453/*------------------------------------------------------------------------*/ 
    454 /** ƒVƒ“ƒ{ƒ‹ƒf[ƒ^‚ð NSOF ‚Ńoƒbƒtƒ@‚ɏ‘ž‚Þ 
    455  * 
    456  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    457  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    458  * 
    459  * @return          ƒGƒ‰[ƒR[ƒh 
    460  * 
    461  * @note            nsof->data ‚ª NULL ‚̏ꍇ‚Í nsof->offset ‚̂ݍXV‚³‚ê‚é 
     454/** シンボルデータを NSOF でバッファに書込む 
     455 * 
     456 * @param nsof      [i/o]NSOFバッファ 
     457 * @param r         [in] シンボルオブジェクト 
     458 * 
     459 * @return          エラーコード 
     460 * 
     461 * @note            nsof->data が NULL の場合は nsof->offset のみ更新される 
    462462 */ 
    463463 
     
    499499#ifdef __NAMED_MAGIC_POINTER__ 
    500500/*------------------------------------------------------------------------*/ 
    501 /** –¼‘O•tƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^‚ð NSOF ‚Ńoƒbƒtƒ@‚ɏ‘ž‚Þ 
    502  * 
    503  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    504  * @param r         [in] –¼‘O•tƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^ 
    505  * 
    506  * @return          ƒGƒ‰[ƒR[ƒh 
    507  * 
    508  * @note            nsof->data ‚ª NULL ‚̏ꍇ‚Í nsof->offset ‚̂ݍXV‚³‚ê‚é 
     501/** 名前付マジックポインタを NSOF でバッファに書込む 
     502 * 
     503 * @param nsof      [i/o]NSOFバッファ 
     504 * @param r         [in] 名前付マジックポインタ 
     505 * 
     506 * @return          エラーコード 
     507 * 
     508 * @note            nsof->data が NULL の場合は nsof->offset のみ更新される 
    509509 */ 
    510510 
     
    517517    if (NSOFIsNOS(nsof->verno)) 
    518518    { 
    519         // ‚Ƃ肠‚¦‚¸ƒVƒ“ƒ{ƒ‹‚ð‘ž‚Þ 
     519        // とりあえずシンボルを書込む 
    520520        NSOFWriteSymbol(nsof, sym); 
    521521        nsof->lastErr = kNErrNSOFWrite; 
     
    540540 
    541541/*------------------------------------------------------------------------*/ 
    542 /** ”z—ñƒf[ƒ^‚ð NSOF ‚Ńoƒbƒtƒ@‚ɏ‘ž‚Þ 
    543  * 
    544  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    545  * @param r         [in] ”z—ñƒIƒuƒWƒFƒNƒg 
    546  * 
    547  * @return          ƒGƒ‰[ƒR[ƒh 
    548  * 
    549  * @note            nsof->data ‚ª NULL ‚̏ꍇ‚Í nsof->offset ‚̂ݍXV‚³‚ê‚é 
     542/** 配列データを NSOF でバッファに書込む 
     543 * 
     544 * @param nsof      [i/o]NSOFバッファ 
     545 * @param r         [in] 配列オブジェクト 
     546 * 
     547 * @return          エラーコード 
     548 * 
     549 * @note            nsof->data が NULL の場合は nsof->offset のみ更新される 
    550550 */ 
    551551 
     
    589589 
    590590/*------------------------------------------------------------------------*/ 
    591 /** ƒtƒŒ[ƒ€ƒf[ƒ^‚ð NSOF ‚Ńoƒbƒtƒ@‚ɏ‘ž‚Þ 
    592  * 
    593  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    594  * @param r         [in] ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg 
    595  * 
    596  * @return          ƒGƒ‰[ƒR[ƒh 
    597  * 
    598  * @note            nsof->data ‚ª NULL ‚̏ꍇ‚Í nsof->offset ‚̂ݍXV‚³‚ê‚é 
     591/** フレームデータを NSOF でバッファに書込む 
     592 * 
     593 * @param nsof      [i/o]NSOFバッファ 
     594 * @param r         [in] フレームオブジェクト 
     595 * 
     596 * @return          エラーコード 
     597 * 
     598 * @note            nsof->data が NULL の場合は nsof->offset のみ更新される 
    599599 */ 
    600600 
     
    633633 
    634634/*------------------------------------------------------------------------*/ 
    635 /** ƒtƒŒ[ƒ€ƒf[ƒ^‚ð NSOF(smallRect) ‚Ńoƒbƒtƒ@‚ɏ‘ž‚Þ 
    636  * 
    637  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    638  * @param r         [in] ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg 
    639  * 
    640  * @return          ƒGƒ‰[ƒR[ƒh 
    641  * 
    642  * @note            nsof->data ‚ª NULL ‚̏ꍇ‚Í nsof->offset ‚̂ݍXV‚³‚ê‚é 
     635/** フレームデータを NSOF(smallRect) でバッファに書込む 
     636 * 
     637 * @param nsof      [i/o]NSOFバッファ 
     638 * @param r         [in] フレームオブジェクト 
     639 * 
     640 * @return          エラーコード 
     641 * 
     642 * @note            nsof->data が NULL の場合は nsof->offset のみ更新される 
    643643 */ 
    644644 
     
    656656 
    657657/*------------------------------------------------------------------------*/ 
    658 /** ƒIƒuƒWƒFƒNƒg‚ð NSOFƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚ɕϊ·‚µ‚ď‘ž‚Þ 
    659  * 
    660  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    661  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    662  * 
    663  * @return          ƒGƒ‰[ƒR[ƒh 
    664  * 
    665  * @note            nsof->data ‚ª NULL ‚̏ꍇ‚Í nsof->offset ‚̂ݍXV‚³‚ê‚é 
     658/** オブジェクトを NSOFバイナリオブジェクトに変換して書込む 
     659 * 
     660 * @param nsof      [i/o]NSOFバッファ 
     661 * @param r         [in] オブジェクト 
     662 * 
     663 * @return          エラーコード 
     664 * 
     665 * @note            nsof->data が NULL の場合は nsof->offset のみ更新される 
    666666 */ 
    667667 
     
    729729 
    730730/*------------------------------------------------------------------------*/ 
    731 /** ƒIƒuƒWƒFƒNƒg‚ð NSOFƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚ɕϊ·‚·‚é 
    732  * 
    733  * @param rcvr      [in] ƒŒƒV[ƒo 
    734  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    735  * @param ver       [in] ƒo[ƒWƒ‡ƒ“ 
    736  * 
    737  * @return          NSOFƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg 
     731/** オブジェクトを NSOFバイナリオブジェクトに変換する 
     732 * 
     733 * @param rcvr      [in] レシーバ 
     734 * @param r         [in] オブジェクト 
     735 * @param ver       [in] バージョン 
     736 * 
     737 * @return          NSOFバイナリオブジェクト 
    738738 */ 
    739739 
     
    768768#endif /* HAVE_LIBICONV */ 
    769769 
    770     // •K—v‚ȃTƒCƒY‚ÌŒvŽZ 
     770    // 必要なサイズの計算 
    771771    NewtWriteNSOF(&nsof, r); 
    772772 
    773773    if (nsof.lastErr == kNErrNone) 
    774774    { 
    775         // ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚̍쐬 
     775        // バイナリオブジェクトの作成 
    776776        result = NewtMakeBinary(NSSYM(NSOF), NULL, nsof.offset, false); 
    777777 
    778778        if (NewtRefIsNotNIL(result)) 
    779         {   // ŽÀÛ‚̏‘ž‚Ý 
     779        {   // 実際の書込み 
    780780            NewtSetLength(nsof.precedents, 0); 
    781781            nsof.data = NewtRefToBinary(result); 
     
    803803#pragma mark - 
    804804/*------------------------------------------------------------------------*/ 
    805 /** NSOFƒoƒbƒtƒ@‚ð“Ǎž‚ñ‚ŃoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚ɕϊ·‚·‚é 
    806  * 
    807  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    808  * @param type      [in] NSOF‚̃^ƒCƒv 
    809  * 
    810  * @return          ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg 
     805/** NSOFバッファを読込んでバイナリオブジェクトに変換する 
     806 * 
     807 * @param nsof      [i/o]NSOFバッファ 
     808 * @param type      [in] NSOFのタイプ 
     809 * 
     810 * @return          バイナリオブジェクト 
    811811 */ 
    812812 
     
    885885 
    886886/*------------------------------------------------------------------------*/ 
    887 /** NSOFƒoƒbƒtƒ@‚ð“Ǎž‚ñ‚Å”z—ñƒIƒuƒWƒFƒNƒg‚ɕϊ·‚·‚é 
    888  * 
    889  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    890  * @param type      [in] NSOF‚̃^ƒCƒv 
    891  * 
    892  * @return          ”z—ñƒIƒuƒWƒFƒNƒg 
     887/** NSOFバッファを読込んで配列オブジェクトに変換する 
     888 * 
     889 * @param nsof      [i/o]NSOFバッファ 
     890 * @param type      [in] NSOFのタイプ 
     891 * 
     892 * @return          配列オブジェクト 
    893893 */ 
    894894 
     
    929929 
    930930/*------------------------------------------------------------------------*/ 
    931 /** NSOFƒoƒbƒtƒ@‚ð“Ǎž‚ñ‚ŃtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg‚ɕϊ·‚·‚é 
    932  * 
    933  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    934  * 
    935  * @return          ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg 
     931/** NSOFバッファを読込んでフレームオブジェクトに変換する 
     932 * 
     933 * @param nsof      [i/o]NSOFバッファ 
     934 * 
     935 * @return          フレームオブジェクト 
    936936 */ 
    937937 
     
    974974 
    975975/*------------------------------------------------------------------------*/ 
    976 /** NSOFƒoƒbƒtƒ@‚ð“Ǎž‚ñ‚ŃVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚ɕϊ·‚·‚é 
    977  * 
    978  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    979  * 
    980  * @return          ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
     976/** NSOFバッファを読込んでシンボルオブジェクトに変換する 
     977 * 
     978 * @param nsof      [i/o]NSOFバッファ 
     979 * 
     980 * @return          シンボルオブジェクト 
    981981 */ 
    982982 
     
    10021002 
    10031003            if (buff) 
    1004             {   // •ÏŠ·‚³‚ꂽ 
     1004            {   // 変換された 
    10051005                r = NewtMakeSymbol(buff); 
    10061006                free(buff); 
     
    10231023#ifdef __NAMED_MAGIC_POINTER__ 
    10241024/*------------------------------------------------------------------------*/ 
    1025 /** NSOFƒoƒbƒtƒ@‚ð“Ǎž‚ñ‚Å–¼‘O•tƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^‚ɕϊ·‚·‚é 
    1026  * 
    1027  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    1028  * 
    1029  * @return          –¼‘O•tƒ}ƒWƒbƒNƒ|ƒCƒ“ƒ^ 
     1025/** NSOFバッファを読込んで名前付マジックポインタに変換する 
     1026 * 
     1027 * @param nsof      [i/o]NSOFバッファ 
     1028 * 
     1029 * @return          名前付マジックポインタ 
    10301030 */ 
    10311031 
     
    10411041        { 
    10421042            nsof->lastErr = kNErrNSOFRead; 
    1043             // ‚Ƃ肠‚¦‚¸ƒVƒ“ƒ{ƒ‹‚̂܂ܠ
     1043            // とりあえずシンボルのまま 
    10441044        } 
    10451045        else 
     
    10551055 
    10561056/*------------------------------------------------------------------------*/ 
    1057 /** NSOFƒoƒbƒtƒ@‚ð“Ǎž‚ñ‚ŃtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg(smallRect)‚ɕϊ·‚·‚é 
    1058  * 
    1059  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    1060  * 
    1061  * @return          ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg(smallRect) 
     1057/** NSOFバッファを読込んでフレームオブジェクト(smallRect)に変換する 
     1058 * 
     1059 * @param nsof      [i/o]NSOFバッファ 
     1060 * 
     1061 * @return          フレームオブジェクト(smallRect) 
    10621062 */ 
    10631063 
     
    10671067 
    10681068    r = NcMakeFrame(); 
    1069     // «—ˆ‚Í map ‚ð‹¤—L‚·‚邱‚Æ 
     1069    // 将来は map を共有すること 
    10701070 
    10711071    NcSetSlot(r, NSSYM(top), NewtMakeInteger(NSOFReadByte(nsof))); 
     
    10791079 
    10801080/*------------------------------------------------------------------------*/ 
    1081 /** NSOFƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚ð“Ǎž‚ñ‚ŃIƒuƒWƒFƒNƒg‚ɕϊ·‚·‚é 
    1082  * 
    1083  * @param nsof      [i/o]NSOFƒoƒbƒtƒ@ 
    1084  * 
    1085  * @return          ƒIƒuƒWƒFƒNƒg 
     1081/** NSOFバイナリオブジェクトを読込んでオブジェクトに変換する 
     1082 * 
     1083 * @param nsof      [i/o]NSOFバッファ 
     1084 * 
     1085 * @return          オブジェクト 
    10861086 */ 
    10871087 
     
    11511151        case kNSOFLargeBinary: 
    11521152        default: 
    1153             // ƒTƒ|[ƒg‚³‚ê‚Ä‚¢‚Ü‚¹‚ñ 
     1153            // サポートされていません 
    11541154            nsof->lastErr = kNErrNSOFRead; 
    11551155            break; 
     
    11611161 
    11621162/*------------------------------------------------------------------------*/ 
    1163 /** NSOFƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚ð“Ǎž‚Þ 
    1164  * 
    1165  * @param data      [in] NSOFƒf[ƒ^ 
    1166  * @param size      [in] NSOFƒf[ƒ^ƒTƒCƒY 
    1167  * 
    1168  * @return          ƒIƒuƒWƒFƒNƒg 
     1163/** NSOFバイナリオブジェクトを読込む 
     1164 * 
     1165 * @param data      [in] NSOFデータ 
     1166 * @param size      [in] NSOFデータサイズ 
     1167 * 
     1168 * @return          オブジェクト 
    11691169 */ 
    11701170 
     
    12091209 
    12101210/*------------------------------------------------------------------------*/ 
    1211 /** NSOFƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚ð“Ǎž‚Þ 
    1212  * 
    1213  * @param rcvr      [in] ƒŒƒV[ƒo 
    1214  * @param r         [in] NSOFƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg 
    1215  * 
    1216  * @return          ƒIƒuƒWƒFƒNƒg 
     1211/** NSOFバイナリオブジェクトを読込む 
     1212 * 
     1213 * @param rcvr      [in] レシーバ 
     1214 * @param r         [in] NSOFバイナリオブジェクト 
     1215 * 
     1216 * @return          オブジェクト 
    12171217 */ 
    12181218 
  • NEWT0/trunk/src/newt_core/NewtObj.c

    r46 r68  
    22/** 
    33 * @file    NewtObj.c 
    4  * @brief   ƒIƒuƒWƒFƒNƒgƒVƒXƒeƒ€ 
     4 * @brief   オブジェクトシステム 
    55 * 
    66 * @author  M.Nukui 
     
    1111 
    1212 
    13 /* ƒwƒbƒ_ƒtƒ@ƒCƒ‹ */ 
     13/* ヘッダファイル */ 
    1414#include <stdlib.h> 
    1515#include <stdio.h> 
     
    2121 
    2222 
    23 /* ŠÖ”ƒvƒƒgƒ^ƒCƒv */ 
     23/* 関数プロトタイプ */ 
    2424static newtRef      NewtMakeSymbol0(const char *s); 
    2525static bool         NewtBSearchSymTable(newtRefArg r, const char * name, uint32_t hash, int32_t st, int32_t * indexP); 
     
    5454#pragma mark - 
    5555/*------------------------------------------------------------------------*/ 
    56 /** ƒVƒ“ƒ{ƒ‹‚̃nƒbƒVƒ 
    57 ’l‚ðŒvŽZ 
    58  * 
    59  * @param name      [in] ƒVƒ“ƒ{ƒ‹–¼ 
    60  * 
    61  * @return          ƒnƒbƒVƒ 
    62 ’l 
     56/** シンボルのハッシュ値を計算 
     57 * 
     58 * @param name      [in] シンボル名 
     59 * 
     60 * @return          ハッシュ値 
    6361 */ 
    6462 
     
    8583 
    8684/*------------------------------------------------------------------------*/ 
    87 /** ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚̍쐬 
    88  * 
    89  * @param s         [in] •¶Žš—ñ 
    90  * 
    91  * @return          ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
     85/** シンボルオブジェクトの作成 
     86 * 
     87 * @param s         [in] 文字列 
     88 * 
     89 * @return          シンボルオブジェクト 
    9290 */ 
    9391 
     
    123121 
    124122/*------------------------------------------------------------------------*/ 
    125 /** ƒVƒ“ƒ{ƒ‹ƒe[ƒuƒ‹‚̈ʒuŒŸõ 
    126  * 
    127  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒe[ƒuƒ‹ 
    128  * @param name      [in] ƒVƒ“ƒ{ƒ‹•¶Žš—ñ 
    129  * @param hash      [in] ƒnƒbƒVƒ 
    130 ’l 
    131  * @param st        [in] ŠJŽnˆÊ’u 
    132  * @param indexP    [out]ˆÊ’u 
    133  * 
    134  * @retval          true    ¬Œ÷ 
    135  * @retval          false   Ž¸”s 
     123/** シンボルテーブルの位置検索 
     124 * 
     125 * @param r         [in] シンボルテーブル 
     126 * @param name      [in] シンボル文字列 
     127 * @param hash      [in] ハッシュ値 
     128 * @param st        [in] 開始位置 
     129 * @param indexP    [out]位置 
     130 * 
     131 * @retval          true    成功 
     132 * @retval          false   失敗 
    136133 */ 
    137134 
     
    192189 
    193190/*------------------------------------------------------------------------*/ 
    194 /** ƒVƒ“ƒ{ƒ‹‚̃‹ƒbƒNƒAƒbƒv 
    195  * 
    196  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒe[ƒuƒ‹ 
    197  * @param name      [in] ƒVƒ“ƒ{ƒ‹•¶Žš—ñ 
    198  * @param hash      [in] ƒnƒbƒVƒ 
    199 ’l 
    200  * @param st        [in] ŠJŽnˆÊ’u 
    201  * 
    202  * @return          ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    203  * 
    204  * @note            –¢“o˜^‚̏ꍇ‚̓Vƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚ðì¬‚µƒVƒ“ƒ{ƒ‹ƒe[ƒuƒ‹‚É“o˜^‚·‚é 
     191/** シンボルのルックアップ 
     192 * 
     193 * @param r         [in] シンボルテーブル 
     194 * @param name      [in] シンボル文字列 
     195 * @param hash      [in] ハッシュ値 
     196 * @param st        [in] 開始位置 
     197 * 
     198 * @return          シンボルオブジェクト 
     199 * 
     200 * @note            未登録の場合はシンボルオブジェクトを作成しシンボルテーブルに登録する 
    205201 */ 
    206202 
     
    221217 
    222218/*------------------------------------------------------------------------*/ 
    223 /** ƒVƒ“ƒ{ƒ‹‚̃‹ƒbƒNƒAƒbƒv 
    224  * 
    225  * @param r         [in] ƒVƒ“ƒ{ƒ‹ƒe[ƒuƒ‹ 
    226  * @param name      [in] ƒVƒ“ƒ{ƒ‹•¶Žš—ñ 
    227  * @param st        [in] ŠJŽnˆÊ’u 
    228  * 
    229  * @return          ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
     219/** シンボルのルックアップ 
     220 * 
     221 * @param r         [in] シンボルテーブル 
     222 * @param name      [in] シンボル文字列 
     223 * @param st        [in] 開始位置 
     224 * 
     225 * @return          シンボルオブジェクト 
    230226 */ 
    231227 
     
    259255#pragma mark - 
    260256/*------------------------------------------------------------------------*/ 
    261 /** ƒIƒuƒWƒFƒNƒg‚̃IƒuƒWƒFƒNƒgƒ^ƒCƒv‚̎擾 
    262  * 
    263  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    264  * @param detail    [in] ƒŠƒeƒ‰ƒ‹ƒtƒ‰ƒO 
    265  * 
    266  * @return          ƒIƒuƒWƒFƒNƒgƒ^ƒCƒv 
     257/** オブジェクトのオブジェクトタイプの取得 
     258 * 
     259 * @param r         [in] オブジェクト 
     260 * @param detail    [in] リテラルフラグ 
     261 * 
     262 * @return          オブジェクトタイプ 
    267263 */ 
    268264 
     
    322318 
    323319/*------------------------------------------------------------------------*/ 
    324 /** ƒIƒuƒWƒFƒNƒgƒf[ƒ^‚̃IƒuƒWƒFƒNƒgƒ^ƒCƒv‚̎擾 
    325  * 
    326  * @param obj       [in] ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
    327  * @param detail    [in] ƒfƒBƒeƒCƒ‹ƒtƒ‰ƒO 
    328  * 
    329  * @return          ƒIƒuƒWƒFƒNƒgƒ^ƒCƒv 
     320/** オブジェクトデータのオブジェクトタイプの取得 
     321 * 
     322 * @param obj       [in] オブジェクトデータ 
     323 * @param detail    [in] ディテイルフラグ 
     324 * 
     325 * @return          オブジェクトタイプ 
    330326 */ 
    331327 
     
    369365#pragma mark - 
    370366/*------------------------------------------------------------------------*/ 
    371 /** ƒIƒuƒWƒFƒNƒgƒf[ƒ^‚ÌŽÀƒf[ƒ^ƒTƒCƒY‚ðŒvŽZ 
    372  * 
    373  * @param n         [in] ƒf[ƒ^ƒTƒCƒY 
    374  * 
    375  * @return          ŽÀƒf[ƒ^ƒTƒCƒY 
     367/** オブジェクトデータの実データサイズを計算 
     368 * 
     369 * @param n         [in] データサイズ 
     370 * 
     371 * @return          実データサイズ 
    376372 */ 
    377373 
     
    386382 
    387383/*------------------------------------------------------------------------*/ 
    388 /** ƒIƒuƒWƒFƒNƒgƒf[ƒ^‚̃ƒ‚ƒŠŠm•Û 
    389  * 
    390  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    391  * @param n         [in] ƒf[ƒ^ƒTƒCƒY 
    392  * @param literal   [in] ƒŠƒeƒ‰ƒ‹ƒtƒ‰ƒO 
    393  * 
    394  * @return          ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
     384/** オブジェクトデータのメモリ確保 
     385 * 
     386 * @param pool      [in] メモリプール 
     387 * @param n         [in] データサイズ 
     388 * @param literal   [in] リテラルフラグ 
     389 * 
     390 * @return          オブジェクトデータ 
    395391 */ 
    396392 
     
    416412 
    417413/*------------------------------------------------------------------------*/ 
    418 /** ƒIƒuƒWƒFƒNƒg‚̃ƒ‚ƒŠŠm•Û 
    419  * 
    420  * @param r         [in] ƒNƒ‰ƒX^ƒ}ƒbƒv 
    421  * @param n         [in] ƒTƒCƒY 
    422  * @param type      [in] ƒIƒuƒWƒFƒNƒgƒ^ƒCƒv 
    423  * @param literal   [in] ƒŠƒeƒ‰ƒ‹ƒtƒ‰ƒO 
    424  * 
    425  * @return          ƒIƒuƒWƒFƒNƒg 
     414/** オブジェクトのメモリ確保 
     415 * 
     416 * @param r         [in] クラス/マップ 
     417 * @param n         [in] サイズ 
     418 * @param type      [in] オブジェクトタイプ 
     419 * @param literal   [in] リテラルフラグ 
     420 * 
     421 * @return          オブジェクト 
    426422 */ 
    427423 
     
    448444 
    449445/*------------------------------------------------------------------------*/ 
    450 /** ƒIƒuƒWƒFƒNƒgƒf[ƒ^‚̃ƒ‚ƒŠÄŠm•Û 
    451  * 
    452  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    453  * @param obj       [in] ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
    454  * @param n         [in] ƒTƒCƒY 
    455  * 
    456  * @return          ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
     446/** オブジェクトデータのメモリ再確保 
     447 * 
     448 * @param pool      [in] メモリプール 
     449 * @param obj       [in] オブジェクトデータ 
     450 * @param n         [in] サイズ 
     451 * 
     452 * @return          オブジェクトデータ 
    457453 */ 
    458454 
     
    488484 
    489485/*------------------------------------------------------------------------*/ 
    490 /** ƒIƒuƒWƒFƒNƒgƒf[ƒ^‚̃TƒCƒY•ύX 
    491  * 
    492  * @param obj       [in] ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
    493  * @param n         [in] ƒTƒCƒY 
    494  * 
    495  * @return          ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
     486/** オブジェクトデータのサイズ変更 
     487 * 
     488 * @param obj       [in] オブジェクトデータ 
     489 * @param n         [in] サイズ 
     490 * 
     491 * @return          オブジェクトデータ 
    496492 */ 
    497493 
     
    509505 
    510506/*------------------------------------------------------------------------*/ 
    511 /** ƒIƒuƒWƒFƒNƒgƒf[ƒ^‚̃f[ƒ^•”‚ðŽæ“¾ 
    512  * 
    513  * @param obj       [in] ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
    514  * 
    515  * @return          ƒf[ƒ^•” 
     507/** オブジェクトデータのデータ部を取得 
     508 * 
     509 * @param obj       [in] オブジェクトデータ 
     510 * 
     511 * @return          データ部 
    516512 */ 
    517513 
     
    530526 
    531527/*------------------------------------------------------------------------*/ 
    532 /** ƒIƒuƒWƒFƒN‚̃Nƒ[ƒ“•¡» 
    533  * 
    534  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    535  * 
    536  * @return          ƒNƒ[ƒ“•¡»‚³‚ꂽƒIƒuƒWƒFƒNƒg 
     528/** オブジェクのクローン複製 
     529 * 
     530 * @param r         [in] オブジェクト 
     531 * 
     532 * @return          クローン複製されたオブジェクト 
    537533 */ 
    538534 
     
    594590 
    595591/*------------------------------------------------------------------------*/ 
    596 /** ƒIƒuƒWƒFƒN‚ÌƒŠƒeƒ‰ƒ‹‰» 
    597  * 
    598  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    599  * 
    600  * @return          ƒŠƒeƒ‰ƒ‹‰»‚³‚ꂽƒIƒuƒWƒFƒNƒg 
     592/** オブジェクのリテラル化 
     593 * 
     594 * @param r         [in] オブジェクト 
     595 * 
     596 * @return          リテラル化されたオブジェクト 
    601597 */ 
    602598 
     
    655651            newObj->header.h |= kNewtObjLiteral; 
    656652 
    657             // obj ‚ð free ‚µ‚Ă͂¢‚¯‚È‚¢ 
    658             // GC ‚ɂ܂©‚¹‚é 
     653            // obj を free してはいけない 
     654            // GC にまかせる 
    659655 
    660656            return NewtMakePointer(newObj); 
     
    668664#pragma mark - 
    669665/*------------------------------------------------------------------------*/ 
    670 /** ƒIƒuƒWƒFƒN‚̃f[ƒ^•”‚ðƒoƒbƒtƒ@‚ÉŽæo‚· 
    671  * 
    672  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    673  * @param data      [out]ƒoƒbƒtƒ@ 
    674  * @param len       [in] ƒoƒbƒtƒ@’· 
    675  * 
    676  * @return          ‚È‚µ 
     666/** オブジェクのデータ部をバッファに取出す 
     667 * 
     668 * @param r         [in] オブジェクト 
     669 * @param data      [out]バッファ 
     670 * @param len       [in] バッファ長 
     671 * 
     672 * @return          なし 
    677673 */ 
    678674 
     
    691687#pragma mark - 
    692688/*------------------------------------------------------------------------*/ 
    693 /** ƒIƒuƒWƒFƒNƒg‚ªƒŠƒeƒ‰ƒ‹‚©ƒ`ƒFƒbƒN‚·‚é 
    694  * 
    695  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    696  * 
    697  * @retval          true    ƒŠƒeƒ‰ƒ‹ 
    698  * @retval          false   ƒŠƒeƒ‰ƒ‹‚łȂ¢ 
     689/** オブジェクトがリテラルかチェックする 
     690 * 
     691 * @param r         [in] オブジェクト 
     692 * 
     693 * @retval          true    リテラル 
     694 * @retval          false   リテラルでない 
    699695 */ 
    700696 
     
    715711 
    716712/*------------------------------------------------------------------------*/ 
    717 /** ƒIƒuƒWƒFƒN‚ɃXƒEƒB[ƒvƒtƒ‰ƒO‚ª—§‚Á‚Ä‚¢‚é‚©ƒ`ƒFƒbƒN‚·‚é 
    718  * 
    719  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    720  * @param mark      [in] ƒ}[ƒN 
    721  * 
    722  * @retval          true    ƒXƒEƒB[ƒvƒtƒ‰ƒO‚ª—§‚Á‚Ä‚¢‚é 
    723  * @retval          false   ƒXƒEƒB[ƒvƒtƒ‰ƒO‚ª—§‚Á‚Ä‚¢‚È‚¢ 
     713/** オブジェクにスウィープフラグが立っているかチェックする 
     714 * 
     715 * @param r         [in] オブジェクト 
     716 * @param mark      [in] マーク 
     717 * 
     718 * @retval          true    スウィープフラグが立っている 
     719 * @retval          false   スウィープフラグが立っていない 
    724720 */ 
    725721 
     
    740736 
    741737/*------------------------------------------------------------------------*/ 
    742 /** ƒIƒuƒWƒFƒNƒg‚ª NIL ‚©ƒ`ƒFƒbƒN‚·‚é 
    743  * 
    744  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    745  * 
    746  * @retval          true    NIL ‚Ü‚½‚Í #UNBIND 
    747  * @retval          false   NIL ‚łȂ¢ 
     738/** オブジェクトが NIL かチェックする 
     739 * 
     740 * @param r         [in] オブジェクト 
     741 * 
     742 * @retval          true    NIL または #UNBIND 
     743 * @retval          false   NIL でない 
    748744 */ 
    749745 
     
    755751 
    756752/*------------------------------------------------------------------------*/ 
    757 /** ƒIƒuƒWƒFƒNƒg‚ªƒVƒ“ƒ{ƒ‹‚©ƒ`ƒFƒbƒN‚·‚é 
    758  * 
    759  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    760  * 
    761  * @retval          true    ƒVƒ“ƒ{ƒ‹ 
    762  * @retval          false   ƒVƒ“ƒ{ƒ‹‚łȂ¢ 
     753/** オブジェクトがシンボルかチェックする 
     754 * 
     755 * @param r         [in] オブジェクト 
     756 * 
     757 * @retval          true    シンボル 
     758 * @retval          false   シンボルでない 
    763759 */ 
    764760 
     
    770766 
    771767/*------------------------------------------------------------------------*/ 
    772 /** ƒIƒuƒWƒFƒNƒg‚̃nƒbƒVƒ 
    773 ’l‚ðŽæ“¾‚·‚é 
    774  * 
    775  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    776  * 
    777  * @return          ƒnƒbƒVƒ 
    778 ’l 
     768/** オブジェクトのハッシュ値を取得する 
     769 * 
     770 * @param r         [in] オブジェクト 
     771 * 
     772 * @return          ハッシュ値 
    779773 */ 
    780774 
     
    793787 
    794788/*------------------------------------------------------------------------*/ 
    795 /** ƒIƒuƒWƒFƒNƒg‚ª•¶Žš—ñ‚©ƒ`ƒFƒbƒN‚·‚é 
    796  * 
    797  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    798  * 
    799  * @retval          true    •¶Žš—ñ 
    800  * @retval          false   •¶Žš—ñ‚łȂ¢ 
     789/** オブジェクトが文字列かチェックする 
     790 * 
     791 * @param r         [in] オブジェクト 
     792 * 
     793 * @retval          true    文字列 
     794 * @retval          false   文字列でない 
    801795 */ 
    802796 
     
    808802 
    809803/*------------------------------------------------------------------------*/ 
    810 /** ƒIƒuƒWƒFƒNƒg‚ª®”‚©ƒ`ƒFƒbƒN‚·‚é 
    811  * 
    812  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    813  * 
    814  * @retval          true    ®” 
    815  * @retval          false   ®”‚łȂ¢ 
     804/** オブジェクトが整数かチェックする 
     805 * 
     806 * @param r         [in] オブジェクト 
     807 * 
     808 * @retval          true    整数 
     809 * @retval          false   整数でない 
    816810 */ 
    817811 
     
    823817 
    824818/*------------------------------------------------------------------------*/ 
    825 /** ®”ƒIƒuƒWƒFƒN‚𐮐”‚É‚·‚é 
    826  * 
    827  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    828  * 
    829  * @return          ®” 
     819/** 整数オブジェクを整数にする 
     820 * 
     821 * @param r         [in] オブジェクト 
     822 * 
     823 * @return          整数 
    830824 */ 
    831825 
     
    844838 
    845839/*------------------------------------------------------------------------*/ 
    846 /** ƒIƒuƒWƒFƒNƒg‚ª32bit®”‚©ƒ`ƒFƒbƒN‚·‚é 
    847  * 
    848  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    849  * 
    850  * @retval          true    32bit®” 
    851  * @retval          false   32bit®”‚łȂ¢ 
     840/** オブジェクトが32bit整数かチェックする 
     841 * 
     842 * @param r         [in] オブジェクト 
     843 * 
     844 * @retval          true    32bit整数 
     845 * @retval          false   32bit整数でない 
    852846 */ 
    853847 
     
    859853 
    860854/*------------------------------------------------------------------------*/ 
    861 /** ƒIƒuƒWƒFƒNƒg‚ª•‚“®¬”“_‚©ƒ`ƒFƒbƒN‚·‚é 
    862  * 
    863  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    864  * 
    865  * @retval          true    •‚“®¬”“_ 
    866  * @retval          false   •‚“®¬”“_‚łȂ¢ 
     855/** オブジェクトが浮動小数点かチェックする 
     856 * 
     857 * @param r         [in] オブジェクト 
     858 * 
     859 * @retval          true    浮動小数点 
     860 * @retval          false   浮動小数点でない 
    867861 */ 
    868862 
     
    874868 
    875869/*------------------------------------------------------------------------*/ 
    876 /** ”’lƒIƒuƒWƒFƒN‚ð•‚“®¬”“_‚É‚·‚é 
    877  * 
    878  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    879  * 
    880  * @return          •‚“®¬”“_ 
     870/** 数値オブジェクを浮動小数点にする 
     871 * 
     872 * @param r         [in] オブジェクト 
     873 * 
     874 * @return          浮動小数点 
    881875 */ 
    882876 
     
    895889 
    896890/*------------------------------------------------------------------------*/ 
    897 /** ƒIƒuƒWƒFƒNƒg‚ªƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚©ƒ`ƒFƒbƒN‚·‚é 
    898  * 
    899  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    900  * 
    901  * @retval          true    ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg 
    902  * @retval          false   ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚łȂ¢ 
     891/** オブジェクトがバイナリオブジェクトかチェックする 
     892 * 
     893 * @param r         [in] オブジェクト 
     894 * 
     895 * @retval          true    バイナリオブジェクト 
     896 * @retval          false   バイナリオブジェクトでない 
    903897 */ 
    904898 
     
    919913 
    920914/*------------------------------------------------------------------------*/ 
    921 /** ƒIƒuƒWƒFƒNƒg‚̃IƒuƒWƒFƒNƒgƒf[ƒ^‚ðŽæ“¾‚·‚é 
    922  * 
    923  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    924  * 
    925  * @return          ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
     915/** オブジェクトのオブジェクトデータを取得する 
     916 * 
     917 * @param r         [in] オブジェクト 
     918 * 
     919 * @return          オブジェクトデータ 
    926920 */ 
    927921 
     
    937931 
    938932/*------------------------------------------------------------------------*/ 
    939 /** ƒIƒuƒWƒFƒNƒg‚ª”z—ñƒIƒuƒWƒFƒNƒg‚©ƒ`ƒFƒbƒN‚·‚é 
    940  * 
    941  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    942  * 
    943  * @retval          true    ”z—ñƒIƒuƒWƒFƒNƒg 
    944  * @retval          false   ”z—ñƒIƒuƒWƒFƒNƒg‚łȂ¢ 
     933/** オブジェクトが配列オブジェクトかチェックする 
     934 * 
     935 * @param r         [in] オブジェクト 
     936 * 
     937 * @retval          true    配列オブジェクト 
     938 * @retval          false   配列オブジェクトでない 
    945939 */ 
    946940 
     
    952946 
    953947/*------------------------------------------------------------------------*/ 
    954 /** ƒIƒuƒWƒFƒNƒg‚ªƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg‚©ƒ`ƒFƒbƒN‚·‚é 
    955  * 
    956  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    957  * 
    958  * @retval          true    ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg 
    959  * @retval          false   ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg‚łȂ¢ 
     948/** オブジェクトがフレームオブジェクトかチェックする 
     949 * 
     950 * @param r         [in] オブジェクト 
     951 * 
     952 * @retval          true    フレームオブジェクト 
     953 * @retval          false   フレームオブジェクトでない 
    960954 */ 
    961955 
     
    967961 
    968962/*------------------------------------------------------------------------*/ 
    969 /** ƒIƒuƒWƒFƒNƒg‚ªƒtƒŒ[ƒ€‚Ü‚½‚Í”z—ñƒIƒuƒWƒFƒNƒg‚©ƒ`ƒFƒbƒN‚·‚é 
    970  * 
    971  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    972  * 
    973  * @retval          true    ƒtƒŒ[ƒ€‚Ü‚½‚Í”z—ñƒIƒuƒWƒFƒNƒg 
    974  * @retval          false   ƒtƒŒ[ƒ€‚Ü‚½‚Í”z—ñƒIƒuƒWƒFƒNƒg‚łȂ¢ 
     963/** オブジェクトがフレームまたは配列オブジェクトかチェックする 
     964 * 
     965 * @param r         [in] オブジェクト 
     966 * 
     967 * @retval          true    フレームまたは配列オブジェクト 
     968 * @retval          false   フレームまたは配列オブジェクトでない 
    975969 */ 
    976970 
     
    985979 
    986980/*------------------------------------------------------------------------*/ 
    987 /** ƒIƒuƒWƒFƒNƒg‚ªƒCƒ~ƒfƒBƒGƒCƒgi‘¦’lj‚©ƒ`ƒFƒbƒN‚·‚é 
    988  * 
    989  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    990  * 
    991  * @retval          true    ƒCƒ~ƒfƒBƒGƒCƒg‚Å‚ ‚é 
    992  * @retval          false   ƒCƒ~ƒfƒBƒGƒCƒg‚łȂ¢ 
     981/** オブジェクトがイミディエイト(即値)かチェックする 
     982 * 
     983 * @param r         [in] オブジェクト 
     984 * 
     985 * @retval          true    イミディエイトである 
     986 * @retval          false   イミディエイトでない 
    993987 */ 
    994988 
     
    1005999 
    10061000/*------------------------------------------------------------------------*/ 
    1007 /** ƒIƒuƒWƒFƒNƒg‚ªƒR[ƒhƒuƒƒbƒNiŠÖ”ƒIƒuƒWƒFƒNƒgj‚©ƒ`ƒFƒbƒN‚·‚é 
    1008  * 
    1009  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1010  * 
    1011  * @retval          true    ƒR[ƒhƒuƒƒbƒN 
    1012  * @retval          false   ƒR[ƒhƒuƒƒbƒN‚łȂ¢ 
     1001/** オブジェクトがコードブロック(関数オブジェクト)かチェックする 
     1002 * 
     1003 * @param r         [in] オブジェクト 
     1004 * 
     1005 * @retval          true    コードブロック 
     1006 * @retval          false   コードブロックでない 
    10131007 */ 
    10141008 
     
    10301024 
    10311025/*------------------------------------------------------------------------*/ 
    1032 /** ƒIƒuƒWƒFƒNƒg‚ªƒlƒCƒeƒBƒuŠÖ”ircvr‚È‚µŠÖ”ƒIƒuƒWƒFƒNƒgj‚©ƒ`ƒFƒbƒN‚·‚é 
    1033  * 
    1034  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1035  * 
    1036  * @retval          true    ƒlƒCƒeƒBƒuŠÖ” 
    1037  * @retval          false   ƒlƒCƒeƒBƒuŠÖ”‚łȂ¢ 
     1026/** オブジェクトがネイティブ関数(rcvrなし関数オブジェクト)かチェックする 
     1027 * 
     1028 * @param r         [in] オブジェクト 
     1029 * 
     1030 * @retval          true    ネイティブ関数 
     1031 * @retval          false   ネイティブ関数でない 
    10381032 */ 
    10391033 
     
    10481042 
    10491043/*------------------------------------------------------------------------*/ 
    1050 /** ƒIƒuƒWƒFƒNƒg‚ªƒlƒCƒeƒBƒuŠÖ”ircvr‚ ‚èŠÖ”ƒIƒuƒWƒFƒNƒgj‚©ƒ`ƒFƒbƒN‚·‚é 
    1051  * 
    1052  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1053  * 
    1054  * @retval          true    ƒlƒCƒeƒBƒuŠÖ” 
    1055  * @retval          false   ƒlƒCƒeƒBƒuŠÖ”‚łȂ¢ 
     1044/** オブジェクトがネイティブ関数(rcvrあり関数オブジェクト)かチェックする 
     1045 * 
     1046 * @param r         [in] オブジェクト 
     1047 * 
     1048 * @retval          true    ネイティブ関数 
     1049 * @retval          false   ネイティブ関数でない 
    10561050 */ 
    10571051 
     
    10661060 
    10671061/*------------------------------------------------------------------------*/ 
    1068 /** ƒIƒuƒWƒFƒNƒg‚ªŠÖ”ƒIƒuƒWƒFƒNƒg‚©ƒ`ƒFƒbƒN‚·‚é 
    1069  * 
    1070  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1071  * 
    1072  * @retval          true    ŠÖ”ƒIƒuƒWƒFƒNƒg 
    1073  * @retval          false   ŠÖ”ƒIƒuƒWƒFƒNƒg‚łȂ¢ 
     1062/** オブジェクトが関数オブジェクトかチェックする 
     1063 * 
     1064 * @param r         [in] オブジェクト 
     1065 * 
     1066 * @retval          true    関数オブジェクト 
     1067 * @retval          false   関数オブジェクトでない 
    10741068 */ 
    10751069 
     
    10811075 
    10821076/*------------------------------------------------------------------------*/ 
    1083 /** ŠÖ”ƒIƒuƒWƒFƒNƒg‚̃^ƒCƒv‚ðŽæ“¾‚·‚é 
    1084  * 
    1085  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1086  * 
    1087  * @retval          kNewtNotFunction    ŠÖ”ƒIƒuƒWƒFƒNƒg‚łȂ¢ 
    1088  * @retval          kNewtCodeBlock      ƒoƒCƒgƒR[ƒhŠÖ” 
    1089  * @retval          kNewtNativeFn       ƒlƒCƒeƒBƒuŠÖ”ircvr‚È‚µAOld Stylej 
    1090  * @retval          kNewtNativeFunc     ƒlƒCƒeƒBƒuŠÖ”ircvr‚ ‚èANew Stylej 
     1077/** 関数オブジェクトのタイプを取得する 
     1078 * 
     1079 * @param r         [in] オブジェクト 
     1080 * 
     1081 * @retval          kNewtNotFunction    関数オブジェクトでない 
     1082 * @retval          kNewtCodeBlock      バイトコード関数 
     1083 * @retval          kNewtNativeFn       ネイティブ関数(rcvrなし、Old Style) 
     1084 * @retval          kNewtNativeFunc     ネイティブ関数(rcvrあり、New Style) 
    10911085 */ 
    10921086 
     
    11141108 
    11151109/*------------------------------------------------------------------------*/ 
    1116 /** ƒIƒuƒWƒFƒNƒg‚ª³‹K•\Œ»ƒIƒuƒWƒFƒNƒg‚©ƒ`ƒFƒbƒN‚·‚é 
    1117  * 
    1118  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1119  * 
    1120  * @retval          true    ³‹K•\Œ»ƒIƒuƒWƒFƒNƒg 
    1121  * @retval          false   ³‹K•\Œ»ƒIƒuƒWƒFƒNƒg‚łȂ¢ 
     1110/** オブジェクトが正規表現オブジェクトかチェックする 
     1111 * 
     1112 * @param r         [in] オブジェクト 
     1113 * 
     1114 * @retval          true    正規表現オブジェクト 
     1115 * @retval          false   正規表現オブジェクトでない 
    11221116 */ 
    11231117 
     
    11391133 
    11401134/*------------------------------------------------------------------------*/ 
    1141 /** ®”ƒIƒuƒWƒFƒNƒg‚ðƒAƒhƒŒƒX‚ɕϊ·‚·‚é 
    1142  * 
    1143  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1144  * 
    1145  * @return          ƒAƒhƒŒƒX 
     1135/** 整数オブジェクトをアドレスに変換する 
     1136 * 
     1137 * @param r         [in] オブジェクト 
     1138 * 
     1139 * @return          アドレス 
    11461140 */ 
    11471141 
     
    11571151#pragma mark - 
    11581152/*------------------------------------------------------------------------*/ 
    1159 /** ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    1160  * 
    1161  * @param klass     [in] ƒNƒ‰ƒX 
    1162  * @param data      [in] ‰Šú‰»ƒf[ƒ^ 
    1163  * @param size      [in] ƒTƒCƒY 
    1164  * @param literal   [in] ƒŠƒeƒ‰ƒ‹ƒtƒ‰ƒO 
    1165  * 
    1166  * @return          ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg 
     1153/** バイナリオブジェクトを作成する 
     1154 * 
     1155 * @param klass     [in] クラス 
     1156 * @param data      [in] 初期化データ 
     1157 * @param size      [in] サイズ 
     1158 * @param literal   [in] リテラルフラグ 
     1159 * 
     1160 * @return          バイナリオブジェクト 
    11671161 */ 
    11681162 
     
    12031197 
    12041198/*------------------------------------------------------------------------*/ 
    1205 /** ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚̃IƒuƒWƒFƒNƒgƒf[ƒ^‚̃TƒCƒY‚ð•ύX‚·‚é 
    1206  * 
    1207  * @param obj       [in] ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
    1208  * @param n         [in] ƒTƒCƒY 
    1209  * 
    1210  * @return          ƒTƒCƒY‚̕ύX‚³‚ꂽƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
     1199/** バイナリオブジェクトのオブジェクトデータのサイズを変更する 
     1200 * 
     1201 * @param obj       [in] オブジェクトデータ 
     1202 * @param n         [in] サイズ 
     1203 * 
     1204 * @return          サイズの変更されたオブジェクトデータ 
    12111205 */ 
    12121206 
     
    12181212 
    12191213/*------------------------------------------------------------------------*/ 
    1220 /** ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚̃TƒCƒY‚ð•ύX‚·‚é 
    1221  * 
    1222  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1223  * @param n         [in] ƒTƒCƒY 
    1224  * 
    1225  * @return          ƒIƒuƒWƒFƒNƒg 
     1214/** バイナリオブジェクトのサイズを変更する 
     1215 * 
     1216 * @param r         [in] オブジェクト 
     1217 * @param n         [in] サイズ 
     1218 * 
     1219 * @return          オブジェクト 
    12261220 */ 
    12271221 
     
    12381232 
    12391233/*------------------------------------------------------------------------*/ 
    1240 /** ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    1241  * 
    1242  * @param s         [in] •¶Žš—ñ 
    1243  * 
    1244  * @return          ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg 
    1245  * 
    1246  * @note            ƒVƒ“ƒ{ƒ‹‚ªŠù‚É‘¶Ý‚·‚éê‡‚͍쐬‚¹‚¸‚ÉŠù‚É‚ ‚éƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚ð•Ô‚· 
     1234/** シンボルオブジェクトを作成する 
     1235 * 
     1236 * @param s         [in] 文字列 
     1237 * 
     1238 * @return          シンボルオブジェクト 
     1239 * 
     1240 * @note            シンボルが既に存在する場合は作成せずに既にあるシンボルオブジェクトを返す 
    12471241 */ 
    12481242 
     
    12541248 
    12551249/*------------------------------------------------------------------------*/ 
    1256 /** ƒVƒ“ƒ{ƒ‹‚̃IƒuƒWƒFƒNƒgƒf[ƒ^‚Ì’·‚³‚ðŽæ“¾‚·‚é 
    1257  * 
    1258  * @param obj       [in] ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
    1259  * 
    1260  * @return          ’·‚³ 
     1250/** シンボルのオブジェクトデータの長さを取得する 
     1251 * 
     1252 * @param obj       [in] オブジェクトデータ 
     1253 * 
     1254 * @return          長さ 
    12611255 */ 
    12621256 
     
    12711265 
    12721266/*------------------------------------------------------------------------*/ 
    1273 /** •¶Žš—ñƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    1274  * 
    1275  * @param s         [in] •¶Žš—ñ 
    1276  * @param literal   [in] ƒŠƒeƒ‰ƒ‹ƒtƒ‰ƒO 
    1277  * 
    1278  * @return          •¶Žš—ñƒIƒuƒWƒFƒNƒg 
     1267/** 文字列オブジェクトを作成する 
     1268 * 
     1269 * @param s         [in] 文字列 
     1270 * @param literal   [in] リテラルフラグ 
     1271 * 
     1272 * @return          文字列オブジェクト 
    12791273 */ 
    12801274 
     
    12861280 
    12871281/*------------------------------------------------------------------------*/ 
    1288 /** ’·‚³‚ðŽw’肵‚Ä•¶Žš—ñƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    1289  * 
    1290  * @param s         [in] •¶Žš—ñ 
    1291  * @param len       [in] •¶Žš—ñ‚Ì’·‚³ 
    1292  * @param literal   [in] ƒŠƒeƒ‰ƒ‹ƒtƒ‰ƒO 
    1293  * 
    1294  * @return          •¶Žš—ñƒIƒuƒWƒFƒNƒg 
     1282/** 長さを指定して文字列オブジェクトを作成する 
     1283 * 
     1284 * @param s         [in] 文字列 
     1285 * @param len       [in] 文字列の長さ 
     1286 * @param literal   [in] リテラルフラグ 
     1287 * 
     1288 * @return          文字列オブジェクト 
    12951289 */ 
    12961290 
     
    13231317 
    13241318/*------------------------------------------------------------------------*/ 
    1325 /** •¶Žš—ñƒIƒuƒWƒFƒNƒg‚̃IƒuƒWƒFƒNƒgƒf[ƒ^‚Ì’·‚³‚ðŽæ“¾‚·‚é 
    1326  * 
    1327  * @param obj       [in] ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
    1328  * 
    1329  * @return          ’·‚³ 
     1319/** 文字列オブジェクトのオブジェクトデータの長さを取得する 
     1320 * 
     1321 * @param obj       [in] オブジェクトデータ 
     1322 * 
     1323 * @return          長さ 
    13301324 */ 
    13311325 
     
    13401334 
    13411335/*------------------------------------------------------------------------*/ 
    1342 /** •¶Žš—ñƒIƒuƒWƒFƒNƒg‚̃IƒuƒWƒFƒNƒgƒf[ƒ^‚Ì’·‚³‚ð•ύX‚·‚é 
    1343  * 
    1344  * @param obj       [in] ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
    1345  * @param len       [in] ’·‚³ 
    1346  * 
    1347  * @return          ’·‚³‚ª•ύX‚³‚ꂽƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
     1336/** 文字列オブジェクトのオブジェクトデータの長さを変更する 
     1337 * 
     1338 * @param obj       [in] オブジェクトデータ 
     1339 * @param len       [in] 長さ 
     1340 * 
     1341 * @return          長さが変更されたオブジェクトデータ 
    13481342 */ 
    13491343 
     
    13551349 
    13561350/*------------------------------------------------------------------------*/ 
    1357 /** •¶Žš—ñƒIƒuƒWƒFƒNƒg‚Ì’·‚³‚ð•ύX‚·‚é 
    1358  * 
    1359  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1360  * @param n         [in] ’·‚³ 
    1361  * 
    1362  * @return          ƒIƒuƒWƒFƒNƒg 
     1351/** 文字列オブジェクトの長さを変更する 
     1352 * 
     1353 * @param r         [in] オブジェクト 
     1354 * @param n         [in] 長さ 
     1355 * 
     1356 * @return          オブジェクト 
    13631357 */ 
    13641358 
     
    13751369 
    13761370/*------------------------------------------------------------------------*/ 
    1377 /** ®”ƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    1378  * 
    1379  * @param v         [in] ®” 
    1380  * 
    1381  * @return          ®”ƒIƒuƒWƒFƒNƒg 
     1371/** 整数オブジェクトを作成する 
     1372 * 
     1373 * @param v         [in] 整数 
     1374 * 
     1375 * @return          整数オブジェクト 
    13821376 */ 
    13831377 
     
    13851379{ 
    13861380    if (-536870912 <= v && v <= 536870911) 
    1387     {   // 30bit ˆÈ“à‚̏ꍇ 
     1381    {   // 30bit 以内の場合 
    13881382        return NewtMakeInt30(v); 
    13891383    } 
     
    13961390 
    13971391/*------------------------------------------------------------------------*/ 
    1398 /** 32bit®”ƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    1399  * 
    1400  * @param v         [in] ®” 
    1401  * 
    1402  * @return          32bit®”ƒIƒuƒWƒFƒNƒg 
     1392/** 32bit整数オブジェクトを作成する 
     1393 * 
     1394 * @param v         [in] 整数 
     1395 * 
     1396 * @return          32bit整数オブジェクト 
    14031397 */ 
    14041398 
     
    14101404 
    14111405/*------------------------------------------------------------------------*/ 
    1412 /** •‚“®¬”“_ƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    1413  * 
    1414  * @param v         [in] •‚“®¬”“_ 
    1415  * 
    1416  * @return          •‚“®¬”“_ƒIƒuƒWƒFƒNƒg 
     1406/** 浮動小数点オブジェクトを作成する 
     1407 * 
     1408 * @param v         [in] 浮動小数点 
     1409 * 
     1410 * @return          浮動小数点オブジェクト 
    14171411 */ 
    14181412 
     
    14241418 
    14251419/*------------------------------------------------------------------------*/ 
    1426 /** ”z—ñƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    1427  * 
    1428  * @param klass     [in] ƒNƒ‰ƒX 
    1429  * @param n         [in] ’·‚³ 
    1430  * 
    1431  * @return          ”z—ñƒIƒuƒWƒFƒNƒg 
     1420/** 配列オブジェクトを作成する 
     1421 * 
     1422 * @param klass     [in] クラス 
     1423 * @param n         [in] 長さ 
     1424 * 
     1425 * @return          配列オブジェクト 
    14321426 */ 
    14331427 
     
    14561450 
    14571451/*------------------------------------------------------------------------*/ 
    1458 /** ”z—ñƒIƒuƒWƒFƒNƒg‚ðì¬‚µ‚ú‰»‚·‚é 
    1459  * 
    1460  * @param klass     [in] ƒNƒ‰ƒX 
    1461  * @param n         [in] ’·‚³ 
    1462  * @param v         [in] ‰Šú‰»ƒf[ƒ^ 
    1463  * 
    1464  * @return          ”z—ñƒIƒuƒWƒFƒNƒg 
     1452/** 配列オブジェクトを作成して初期化する 
     1453 * 
     1454 * @param klass     [in] クラス 
     1455 * @param n         [in] 長さ 
     1456 * @param v         [in] 初期化データ 
     1457 * 
     1458 * @return          配列オブジェクト 
    14651459 */ 
    14661460 
     
    14791473 
    14801474/*------------------------------------------------------------------------*/ 
    1481 /** ƒ}ƒbƒv‚ðì¬‚µ‚ú‰»‚·‚é 
    1482  * 
    1483  * @param superMap  [in] ƒX[ƒpƒ}ƒbƒv 
    1484  * @param n         [in] ’·‚³ 
    1485  * @param v         [in] ‰Šú‰»ƒf[ƒ^ 
    1486  * 
    1487  * @return          ƒ}ƒbƒvƒIƒuƒWƒFƒNƒg 
     1475/** マップを作成して初期化する 
     1476 * 
     1477 * @param superMap  [in] スーパマップ 
     1478 * @param n         [in] 長さ 
     1479 * @param v         [in] 初期化データ 
     1480 * 
     1481 * @return          マップオブジェクト 
    14881482 */ 
    14891483 
     
    15291523 
    15301524/*------------------------------------------------------------------------*/ 
    1531 /** ƒ}ƒbƒv‚Ƀtƒ‰ƒO‚ðƒZƒbƒg‚·‚é 
    1532  * 
    1533  * @param map       [in] ƒ}ƒbƒvƒIƒuƒWƒFƒNƒg 
    1534  * @param bit       [in] ƒtƒ‰ƒO 
    1535  * 
    1536  * @return          ‚È‚µ 
     1525/** マップにフラグをセットする 
     1526 * 
     1527 * @param map       [in] マップオブジェクト 
     1528 * @param bit       [in] フラグ 
     1529 * 
     1530 * @return          なし 
    15371531 */ 
    15381532 
     
    15481542 
    15491543/*------------------------------------------------------------------------*/ 
    1550 /** ƒ}ƒbƒv‚̃tƒ‰ƒO‚ðƒNƒŠƒA‚·‚é 
    1551  * 
    1552  * @param map       [in] ƒ}ƒbƒvƒIƒuƒWƒFƒNƒg 
    1553  * @param bit       [in] ƒtƒ‰ƒO 
    1554  * 
    1555  * @return          ‚È‚µ 
     1544/** マップのフラグをクリアする 
     1545 * 
     1546 * @param map       [in] マップオブジェクト 
     1547 * @param bit       [in] フラグ 
     1548 * 
     1549 * @return          なし 
    15561550 */ 
    15571551 
     
    15671561 
    15681562/*------------------------------------------------------------------------*/ 
    1569 /** ƒ}ƒbƒv‚Ì’·‚³‚ðŽæ“¾‚·‚é 
    1570  * 
    1571  * @param map       [in] ƒ}ƒbƒvƒIƒuƒWƒFƒNƒg 
    1572  * 
    1573  * @return          ’·‚³ 
     1563/** マップの長さを取得する 
     1564 * 
     1565 * @param map       [in] マップオブジェクト 
     1566 * 
     1567 * @return          長さ 
    15741568 */ 
    15751569 
     
    15921586 
    15931587/*------------------------------------------------------------------------*/ 
    1594 /** ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    1595  * 
    1596  * @param map       [in] ƒ}ƒbƒv 
    1597  * @param n         [in] ’·‚³ 
    1598  * 
    1599  * @return          ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg 
     1588/** フレームオブジェクトを作成する 
     1589 * 
     1590 * @param map       [in] マップ 
     1591 * @param n         [in] 長さ 
     1592 * 
     1593 * @return          フレームオブジェクト 
    16001594 */ 
    16011595 
     
    16141608 
    16151609/*------------------------------------------------------------------------*/ 
    1616 /** ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg‚ðì¬‚µ‚ú‰»‚·‚é 
    1617  * 
    1618  * @param n         [in] ’·‚³ 
    1619  * @param v         [in] ‰Šú‰»ƒf[ƒ^ 
    1620  * 
    1621  * @return          ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg 
     1610/** フレームオブジェクトを作成して初期化する 
     1611 * 
     1612 * @param n         [in] 長さ 
     1613 * @param v         [in] 初期化データ 
     1614 * 
     1615 * @return          フレームオブジェクト 
    16221616 */ 
    16231617 
     
    16381632 
    16391633/*------------------------------------------------------------------------*/ 
    1640 /** ƒXƒƒbƒgƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    1641  * 
    1642  * @param r         [in] ƒNƒ‰ƒX^ƒ}ƒbƒv 
    1643  * @param n         [in] ’·‚³ 
    1644  * @param type      [in] ƒ^ƒCƒv 
    1645  * 
    1646  * @return          ƒIƒuƒWƒFƒNƒg 
     1634/** スロットオブジェクトを作成する 
     1635 * 
     1636 * @param r         [in] クラス/マップ 
     1637 * @param n         [in] 長さ 
     1638 * @param type      [in] タイプ 
     1639 * 
     1640 * @return          オブジェクト 
    16471641 */ 
    16481642 
     
    16751669 
    16761670/*------------------------------------------------------------------------*/ 
    1677 /** ƒXƒƒbƒgƒIƒuƒWƒFƒNƒg‚̃IƒuƒWƒFƒNƒgƒf[ƒ^‚Ì’·‚³‚ðŽæ“¾‚·‚é 
    1678  * 
    1679  * @param obj       [in] ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
    1680  * 
    1681  * @return          ’·‚³ 
     1671/** スロットオブジェクトのオブジェクトデータの長さを取得する 
     1672 * 
     1673 * @param obj       [in] オブジェクトデータ 
     1674 * 
     1675 * @return          長さ 
    16821676 */ 
    16831677 
     
    16891683 
    16901684/*------------------------------------------------------------------------*/ 
    1691 /** ƒXƒƒbƒgƒIƒuƒWƒFƒNƒg‚̃IƒuƒWƒFƒNƒgƒf[ƒ^‚Ì’·‚³‚ð•ύX‚·‚é 
    1692  * 
    1693  * @param obj       [in] ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
    1694  * @param n         [in] ’·‚³ 
    1695  * @param v         [in] ‰Šú‰»ƒf[ƒ^ 
    1696  * 
    1697  * @return          ’·‚³‚̕ύX‚³‚ꂽƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
     1685/** スロットオブジェクトのオブジェクトデータの長さを変更する 
     1686 * 
     1687 * @param obj       [in] オブジェクトデータ 
     1688 * @param n         [in] 長さ 
     1689 * @param v         [in] 初期化データ 
     1690 * 
     1691 * @return          長さの変更されたオブジェクトデータ 
    16981692 */ 
    16991693 
     
    17251719 
    17261720/*------------------------------------------------------------------------*/ 
    1727 /** ƒXƒƒbƒgƒIƒuƒWƒFƒNƒg‚̃IƒuƒWƒFƒNƒgƒf[ƒ^‚É’l‚ð’ljÁ‚·‚é 
    1728  * 
    1729  * @param obj       [in] ƒIƒuƒWƒFƒNƒgƒf[ƒ^ 
    1730  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    1731  * 
    1732  * @return          ’lƒIƒuƒWƒFƒNƒg 
     1721/** スロットオブジェクトのオブジェクトデータに値を追加する 
     1722 * 
     1723 * @param obj       [in] オブジェクトデータ 
     1724 * @param v         [in] 値オブジェクト 
     1725 * 
     1726 * @return          値オブジェクト 
    17331727 */ 
    17341728 
     
    17451739 
    17461740/*------------------------------------------------------------------------*/ 
    1747 /** ƒXƒƒbƒgƒIƒuƒWƒFƒNƒg‚Ì’·‚³‚ð•ύX‚·‚é 
    1748  * 
    1749  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1750  * @param n         [in] ’·‚³ 
    1751  * @param v         [in] ‰Šú‰»ƒf[ƒ^ 
    1752  * 
    1753  * @return          ’·‚³‚̕ύX‚³‚ꂽƒIƒuƒWƒFƒNƒg 
     1741/** スロットオブジェクトの長さを変更する 
     1742 * 
     1743 * @param r         [in] オブジェクト 
     1744 * @param n         [in] 長さ 
     1745 * @param v         [in] 初期化データ 
     1746 * 
     1747 * @return          長さの変更されたオブジェクト 
    17541748 */ 
    17551749 
     
    17661760 
    17671761/*------------------------------------------------------------------------*/ 
    1768 /** ƒIƒuƒWƒFƒNƒg‚Ì’·‚³‚ð•ύX‚·‚é 
    1769  * 
    1770  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    1771  * @param n         [in] ’·‚³ 
    1772  * 
    1773  * @return          ’·‚³‚̕ύX‚³‚ꂽƒIƒuƒWƒFƒNƒg 
     1762/** オブジェクトの長さを変更する 
     1763 * 
     1764 * @param r         [in] オブジェクト 
     1765 * @param n         [in] 長さ 
     1766 * 
     1767 * @return          長さの変更されたオブジェクト 
    17741768 */ 
    17751769 
     
    18011795 
    18021796/*------------------------------------------------------------------------*/ 
    1803 /** ƒAƒhƒŒƒX‚©‚琮”ƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    1804  * 
    1805  * @param addr      [in] ƒAƒhƒŒƒX 
    1806  * 
    1807  * @return          ®”ƒIƒuƒWƒFƒNƒg 
     1797/** アドレスから整数オブジェクトを作成する 
     1798 * 
     1799 * @param addr      [in] アドレス 
     1800 * 
     1801 * @return          整数オブジェクト 
    18081802 */ 
    18091803 
     
    18161810#pragma mark - 
    18171811/*------------------------------------------------------------------------*/ 
    1818 /** ƒGƒ‰[”ԍ†‚Ì—áŠO‚𔭐¶‚·‚é 
    1819  * 
    1820  * @param err       [in] ƒGƒ‰[”ԍ† 
     1812/** エラー番号の例外を発生する 
     1813 * 
     1814 * @param err       [in] エラー番号 
    18211815 * 
    18221816 * @return          kNewtRefUnbind 
     
    18301824 
    18311825/*------------------------------------------------------------------------*/ 
    1832 /** ƒGƒ‰[”ԍ†‚ɑΉž‚·‚é—áŠOƒVƒ“ƒ{ƒ‹‚ðì¬‚·‚é 
    1833  * 
    1834  * @param err       [in] ƒGƒ‰[”ԍ† 
    1835  * 
    1836  * @return          —áŠOƒVƒ“ƒ{ƒ‹ 
     1826/** エラー番号に対応する例外シンボルを作成する 
     1827 * 
     1828 * @param err       [in] エラー番号 
     1829 * 
     1830 * @return          例外シンボル 
    18371831 */ 
    18381832 
     
    18781872 
    18791873/*------------------------------------------------------------------------*/ 
    1880 /** ƒGƒ‰[”ԍ†‚Æ’lƒIƒuƒWƒFƒNƒg‚ðƒf[ƒ^‚É—áŠO‚𔭐¶‚·‚é 
    1881  * 
    1882  * @param err       [in] ƒGƒ‰[”ԍ† 
    1883  * @param value     [in] ’lƒIƒuƒWƒFƒNƒg 
     1874/** エラー番号と値オブジェクトをデータに例外を発生する 
     1875 * 
     1876 * @param err       [in] エラー番号 
     1877 * @param value     [in] 値オブジェクト 
    18841878 * 
    18851879 * @return          kNewtRefUnbind 
     
    19041898 
    19051899/*------------------------------------------------------------------------*/ 
    1906 /** ƒGƒ‰[”ԍ†‚ƃVƒ“ƒ{ƒ‹‚ðƒf[ƒ^‚É—áŠO‚𔭐¶‚·‚é 
    1907  * 
    1908  * @param err       [in] ƒGƒ‰[”ԍ† 
    1909  * @param symbol    [in] ƒVƒ“ƒ{ƒ‹ 
     1900/** エラー番号とシンボルをデータに例外を発生する 
     1901 * 
     1902 * @param err       [in] エラー番号 
     1903 * @param symbol    [in] シンボル 
    19101904 * 
    19111905 * @return          kNewtRefUnbind 
     
    19301924 
    19311925/*------------------------------------------------------------------------*/ 
    1932 /** Out Of Bounds ƒGƒ‰[‚𔭐¶‚·‚é 
    1933  * 
    1934  * @param value     [in] ’lƒIƒuƒWƒFƒNƒg 
    1935  * @param index     [in] ˆÊ’u 
     1926/** Out Of Bounds エラーを発生する 
     1927 * 
     1928 * @param value     [in] 値オブジェクト 
     1929 * @param index     [in] 位置 
    19361930 * 
    19371931 * @return          kNewtRefUnbind 
     
    19561950 
    19571951/*------------------------------------------------------------------------*/ 
    1958 /** ƒGƒ‰[ƒƒbƒZ[ƒW‚ð•\ަ‚·‚é 
    1959  * 
    1960  * @param err       [in] ƒGƒ‰[”ԍ† 
    1961  * 
    1962  * @return          ‚È‚µ 
     1952/** エラーメッセージを表示する 
     1953 * 
     1954 * @param err       [in] エラー番号 
     1955 * 
     1956 * @return          なし 
    19631957 */ 
    19641958 
     
    19791973#pragma mark - 
    19801974/*------------------------------------------------------------------------*/ 
    1981 /** 32bit®”‚Ì”äŠr 
    1982  * 
    1983  * @param r1        [in] 32bit®”‚P 
    1984  * @param r2        [in] 32bit®”‚Q 
     1975/** 32bit整数の比較 
     1976 * 
     1977 * @param r1        [in] 32bit整数1 
     1978 * @param r2        [in] 32bit整数2 
    19851979 * 
    19861980 * @retval          -1      r1 < r2 
     
    20072001 
    20082002/*------------------------------------------------------------------------*/ 
    2009 /** •‚“®¬”“_‚Ì”äŠr 
    2010  * 
    2011  * @param r1        [in] •‚“®¬”“_‚P 
    2012  * @param r2        [in] •‚“®¬”“_‚Q 
     2003/** 浮動小数点の比較 
     2004 * 
     2005 * @param r1        [in] 浮動小数点1 
     2006 * @param r2        [in] 浮動小数点2 
    20132007 * 
    20142008 * @retval          -1      r1 < r2 
     
    20352029 
    20362030/*------------------------------------------------------------------------*/ 
    2037 /** ƒVƒ“ƒ{ƒ‹‚ðŽš‹å“I‚É”äŠri‘å•¶Žš¬•¶Žš‚Í‹æ•Ê‚³‚ê‚È‚¢j 
    2038  * 
    2039  * @param r1        [in] ƒVƒ“ƒ{ƒ‹‚P 
    2040  * @param r2        [in] ƒVƒ“ƒ{ƒ‹‚Q 
    2041  * 
    2042  * @retval          •‰‚̐®”    r1 < r2 
     2031/** シンボルを字句的に比較(大文字小文字は区別されない) 
     2032 * 
     2033 * @param r1        [in] シンボル1 
     2034 * @param r2        [in] シンボル2 
     2035 * 
     2036 * @retval          負の整数    r1 < r2 
    20432037 * @retval          0       r1 = r2 
    2044  * @retval          ³‚̐®”    r1 > r2 
     2038 * @retval          正の整数    r1 > r2 
    20452039 */ 
    20462040 
     
    20612055 
    20622056/*------------------------------------------------------------------------*/ 
    2063 /** •¶Žš—ñƒIƒuƒWƒFƒNƒg‚Ì”äŠr 
    2064  * 
    2065  * @param r1        [in] •¶Žš—ñƒIƒuƒWƒFƒNƒg‚P 
    2066  * @param r2        [in] •¶Žš—ñƒIƒuƒWƒFƒNƒg‚Q 
    2067  * 
    2068  * @retval          •‰‚̐®”    r1 < r2 
     2057/** 文字列オブジェクトの比較 
     2058 * 
     2059 * @param r1        [in] 文字列オブジェクト1 
     2060 * @param r2        [in] 文字列オブジェクト2 
     2061 * 
     2062 * @retval          負の整数    r1 < r2 
    20692063 * @retval          0       r1 = r2 
    2070  * @retval          ³‚̐®”    r1 > r2 
     2064 * @retval          正の整数    r1 > r2 
    20712065 */ 
    20722066 
     
    20842078 
    20852079/*------------------------------------------------------------------------*/ 
    2086 /** ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚Ì”äŠr 
    2087  * 
    2088  * @param r1        [in] ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚P 
    2089  * @param r2        [in] ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚Q 
     2080/** バイナリオブジェクトの比較 
     2081 * 
     2082 * @param r1        [in] バイナリオブジェクト1 
     2083 * @param r2        [in] バイナリオブジェクト2 
    20902084 * 
    20912085 * @retval          -1      r1 < r2 
     
    21332127#pragma mark - 
    21342128/*------------------------------------------------------------------------*/ 
    2135 /** ŒvŽZ‰Â”\‚Ȉø”‚È‚ç‚ÎŒvŽZŒ‹‰Ê‚̃IƒuƒWƒFƒNƒgƒ^ƒCƒv‚ð•Ô‚· 
    2136  * 
    2137  * @param r1        [in] ƒIƒuƒWƒFƒNƒg‚P 
    2138  * @param r2        [in] ƒIƒuƒWƒFƒNƒg‚Q 
    2139  * 
    2140  * @retval          ƒIƒuƒWƒFƒNƒgƒ^ƒCƒv      ŒvŽZ‰Â”\ 
    2141  * @retval          kNewtUnknownType    ŒvŽZ•s‰Â 
     2129/** 計算可能な引数ならば計算結果のオブジェクトタイプを返す 
     2130 * 
     2131 * @param r1        [in] オブジェクト1 
     2132 * @param r2        [in] オブジェクト2 
     2133 * 
     2134 * @retval          オブジェクトタイプ       計算可能 
     2135 * @retval          kNewtUnknownType    計算不可 
    21422136 */ 
    21432137 
     
    21722166 
    21732167/*------------------------------------------------------------------------*/ 
    2174 /** ƒIƒuƒWƒFƒNƒg‚̑召”äŠr 
    2175  * 
    2176  * @param r1        [in] ƒIƒuƒWƒFƒNƒg‚P 
    2177  * @param r2        [in] ƒIƒuƒWƒFƒNƒg‚Q 
     2168/** オブジェクトの大小比較 
     2169 * 
     2170 * @param r1        [in] オブジェクト1 
     2171 * @param r2        [in] オブジェクト2 
    21782172 * 
    21792173 * @retval          1       r1 > r2 
     
    22322226 
    22332227/*------------------------------------------------------------------------*/ 
    2234 /** ŽQÆ‚Ì”äŠr 
    2235  * 
    2236  * @param r1        [in] ŽQÆ‚P 
    2237  * @param r2        [in] ŽQÆ‚Q 
    2238  * 
    2239  * @retval          true    “¯’l 
    2240  * @retval          false   “¯’l‚łȂ¢ 
     2228/** 参照の比較 
     2229 * 
     2230 * @param r1        [in] 参照1 
     2231 * @param r2        [in] 参照2 
     2232 * 
     2233 * @retval          true    同値 
     2234 * @retval          false   同値でない 
    22412235 */ 
    22422236 
     
    22692263 
    22702264/*------------------------------------------------------------------------*/ 
    2271 /** ƒIƒuƒWƒFƒNƒg‚Ì”äŠr 
    2272  * 
    2273  * @param r1        [in] ƒIƒuƒWƒFƒNƒg‚P 
    2274  * @param r2        [in] ƒIƒuƒWƒFƒNƒg‚Q 
    2275  * 
    2276  * @retval          true    “¯’l 
    2277  * @retval          false   “¯’l‚łȂ¢ 
     2265/** オブジェクトの比較 
     2266 * 
     2267 * @param r1        [in] オブジェクト1 
     2268 * @param r2        [in] オブジェクト2 
     2269 * 
     2270 * @retval          true    同値 
     2271 * @retval          false   同値でない 
    22782272 */ 
    22792273 
     
    22912285 
    22922286/*------------------------------------------------------------------------*/ 
    2293 /** ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚Ì”äŠr 
    2294  * 
    2295  * @param r1        [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚P 
    2296  * @param r2        [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚Q 
    2297  * 
    2298  * @retval          true    “¯’l 
    2299  * @retval          false   “¯’l‚łȂ¢ 
     2287/** シンボルオブジェクトの比較 
     2288 * 
     2289 * @param r1        [in] シンボルオブジェクト1 
     2290 * @param r2        [in] シンボルオブジェクト2 
     2291 * 
     2292 * @retval          true    同値 
     2293 * @retval          false   同値でない 
    23002294 */ 
    23012295 
     
    23262320#pragma mark - 
    23272321/*------------------------------------------------------------------------*/ 
    2328 /** ƒIƒuƒWƒFƒNƒg‚Ì’·‚³‚ðŽæ“¾‚·‚é 
    2329  * 
    2330  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    2331  * 
    2332  * @return          ’·‚³ 
     2322/** オブジェクトの長さを取得する 
     2323 * 
     2324 * @param r         [in] オブジェクト 
     2325 * 
     2326 * @return          長さ 
    23332327 */ 
    23342328 
     
    23592353 
    23602354/*------------------------------------------------------------------------*/ 
    2361 /** ƒIƒuƒWƒFƒNƒg‚́i[‚¢j’·‚³‚ðŽæ“¾ 
    2362  * 
    2363  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    2364  * 
    2365  * @return          ƒIƒuƒWƒFƒNƒg‚Ì’·‚³ 
    2366  * 
    2367  * @note            ƒtƒŒ[ƒ€‚̏ꍇ‚̓vƒƒgŒp³‚Å’·‚³‚ðŒvŽZ‚·‚é 
     2355/** オブジェクトの(深い)長さを取得 
     2356 * 
     2357 * @param r         [in] オブジェクト 
     2358 * 
     2359 * @return          オブジェクトの長さ 
     2360 * 
     2361 * @note            フレームの場合はプロト継承で長さを計算する 
    23682362 */ 
    23692363 
     
    23882382 
    23892383/*------------------------------------------------------------------------*/ 
    2390 /** ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚Ì’·‚³‚ðŽæ“¾ 
    2391  * 
    2392  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    2393  * 
    2394  * @return          ƒIƒuƒWƒFƒNƒg‚Ì’·‚³ 
     2384/** バイナリオブジェクトの長さを取得 
     2385 * 
     2386 * @param r         [in] オブジェクト 
     2387 * 
     2388 * @return          オブジェクトの長さ 
    23952389 */ 
    23962390 
     
    24122406 
    24132407/*------------------------------------------------------------------------*/ 
    2414 /** ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚Ì’·‚³‚ðŽæ“¾ 
    2415  * 
    2416  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    2417  * 
    2418  * @return          ƒIƒuƒWƒFƒNƒg‚Ì’·‚³ 
     2408/** シンボルオブジェクトの長さを取得 
     2409 * 
     2410 * @param r         [in] オブジェクト 
     2411 * 
     2412 * @return          オブジェクトの長さ 
    24192413 */ 
    24202414 
     
    24292423 
    24302424/*------------------------------------------------------------------------*/ 
    2431 /** •¶Žš—ñƒIƒuƒWƒFƒNƒg‚Ì’·‚³‚ðŽæ“¾ 
    2432  * 
    2433  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    2434  * 
    2435  * @return          ƒIƒuƒWƒFƒNƒg‚Ì’·‚³ 
     2425/** 文字列オブジェクトの長さを取得 
     2426 * 
     2427 * @param r         [in] オブジェクト 
     2428 * 
     2429 * @return          オブジェクトの長さ 
    24362430 */ 
    24372431 
     
    24462440 
    24472441/*------------------------------------------------------------------------*/ 
    2448 /** ƒXƒƒbƒgƒIƒuƒWƒFƒNƒg‚Ì’·‚³iƒXƒƒbƒg‚̐”j‚ðŽæ“¾ 
    2449  * 
    2450  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    2451  * 
    2452  * @return          ƒIƒuƒWƒFƒNƒg‚Ì’·‚³ 
     2442/** スロットオブジェクトの長さ(スロットの数)を取得 
     2443 * 
     2444 * @param r         [in] オブジェクト 
     2445 * 
     2446 * @return          オブジェクトの長さ 
    24532447 */ 
    24542448 
     
    24632457 
    24642458/*------------------------------------------------------------------------*/ 
    2465 /** ƒvƒƒgŒp³‚ŃtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg‚Ì’·‚³iƒXƒƒbƒg‚̐”j‚ðŽæ“¾ 
    2466  * 
    2467  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    2468  * 
    2469  * @return          ƒIƒuƒWƒFƒNƒg‚Ì’·‚³ 
     2459/** プロト継承でフレームオブジェクトの長さ(スロットの数)を取得 
     2460 * 
     2461 * @param r         [in] オブジェクト 
     2462 * 
     2463 * @return          オブジェクトの長さ 
    24702464 */ 
    24712465 
     
    24962490#pragma mark - 
    24972491/*------------------------------------------------------------------------*/ 
    2498 /** ƒtƒŒ[ƒ€‚̃IƒuƒWƒFƒNƒgƒf[ƒ^‚ª _proto ƒXƒƒbƒg‚ðŽ‚Â‚©ƒ`ƒFƒbƒN‚·‚é 
    2499  * 
    2500  * @param obj       [in] ƒtƒŒ[ƒ€‚̃IƒuƒWƒFƒNƒgƒf[ƒ^ 
    2501  * 
    2502  * @retval          true    _proto ƒXƒƒbƒg‚ðŽ‚Â 
    2503  * @retval          false   _proto ƒXƒƒbƒg‚ðŽ‚½‚È‚¢ 
     2492/** フレームのオブジェクトデータが _proto スロットを持つかチェックする 
     2493 * 
     2494 * @param obj       [in] フレームのオブジェクトデータ 
     2495 * 
     2496 * @retval          true    _proto スロットを持つ 
     2497 * @retval          false   _proto スロットを持たない 
    25042498 */ 
    25052499 
     
    25182512 
    25192513/*------------------------------------------------------------------------*/ 
    2520 /** ƒtƒŒ[ƒ€‚̃IƒuƒWƒFƒNƒgƒf[ƒ^‚©‚çƒXƒƒbƒg‚Ì’l‚ðŽæo‚· 
    2521  * 
    2522  * @param obj       [in] ƒtƒŒ[ƒ€‚̃IƒuƒWƒFƒNƒgƒf[ƒ^ 
    2523  * @param slot      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    2524  * 
    2525  * @return          ’lƒIƒuƒWƒFƒNƒg 
     2514/** フレームのオブジェクトデータからスロットの値を取出す 
     2515 * 
     2516 * @param obj       [in] フレームのオブジェクトデータ 
     2517 * @param slot      [in] スロットシンボル 
     2518 * 
     2519 * @return          値オブジェクト 
    25262520 */ 
    25272521 
     
    25492543 
    25502544/*------------------------------------------------------------------------*/ 
    2551 /** ƒ}ƒbƒv‚̃\[ƒgƒtƒ‰ƒO‚ðƒ`ƒFƒbƒN‚·‚é 
    2552  * 
    2553  * @param r         [in] ƒ}ƒbƒvƒIƒuƒWƒFƒNƒg 
    2554  * 
    2555  * @retval          true    ƒ\[ƒgƒtƒ‰ƒO‚ª ON 
    2556  * @retval          false   ƒ\[ƒgƒtƒ‰ƒO‚ª OFF 
     2545/** マップのソートフラグをチェックする 
     2546 * 
     2547 * @param r         [in] マップオブジェクト 
     2548 * 
     2549 * @retval          true    ソートフラグが ON 
     2550 * @retval          false   ソートフラグが OFF 
    25572551 */ 
    25582552 
     
    25722566 
    25732567/*------------------------------------------------------------------------*/ 
    2574 /** ƒtƒŒ[ƒ€‚̃IƒuƒWƒFƒNƒgƒf[ƒ^‚ɃXƒƒbƒg‚Ì’l‚ðƒZƒbƒg‚·‚é 
    2575  * 
    2576  * @param obj       [in] ƒtƒŒ[ƒ€‚̃IƒuƒWƒFƒNƒgƒf[ƒ^ 
    2577  * @param slot      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    2578  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    2579  * 
    2580  * @return          ’lƒIƒuƒWƒFƒNƒg 
     2568/** フレームのオブジェクトデータにスロットの値をセットする 
     2569 * 
     2570 * @param obj       [in] フレームのオブジェクトデータ 
     2571 * @param slot      [in] スロットシンボル 
     2572 * @param v         [in] 値オブジェクト 
     2573 * 
     2574 * @return          値オブジェクト 
    25812575 */ 
    25822576 
     
    26192613            if (NewtMapIsSorted(obj->as.map)) 
    26202614            { 
    2621                 // ƒ}ƒbƒv‚ªƒ\[ƒg‚³‚ê‚Ä‚¢‚éê‡... 
     2615                // マップがソートされている場合... 
    26222616 
    26232617                newtSymDataRef  sym; 
     
    26472641 
    26482642/*------------------------------------------------------------------------*/ 
    2649 /** ”z—ñ‚̃IƒuƒWƒFƒNƒgƒf[ƒ^‚©‚çŽw’èˆÊ’u‚Ì—v‘f‚ðíœ‚·‚é 
    2650  * 
    2651  * @param obj       [in] ”z—ñ‚̃IƒuƒWƒFƒNƒgƒf[ƒ^ 
    2652  * @param n         [in] ˆÊ’u 
    2653  * 
    2654  * @return          ‚È‚µ 
     2643/** 配列のオブジェクトデータから指定位置の要素を削除する 
     2644 * 
     2645 * @param obj       [in] 配列のオブジェクトデータ 
     2646 * @param n         [in] 位置 
     2647 * 
     2648 * @return          なし 
    26552649 */ 
    26562650 
     
    26802674 
    26812675/*------------------------------------------------------------------------*/ 
    2682 /** ƒ}ƒbƒv‚ð[‚­ƒRƒs[‚·‚é 
    2683  * 
    2684  * @param dst       [out]ƒRƒs[æ 
    2685  * @param pos       [i/o]ƒRƒs[ˆÊ’u 
    2686  * @param src       [in] ƒRƒs[Œ³ 
    2687  * 
    2688  * @return          ‚È‚µ 
     2676/** マップを深くコピーする 
     2677 * 
     2678 * @param dst       [out]コピー先 
     2679 * @param pos       [i/o]コピー位置 
     2680 * @param src       [in] コピー元 
     2681 * 
     2682 * @return          なし 
    26892683 */ 
    26902684 
     
    27162710 
    27172711/*------------------------------------------------------------------------*/ 
    2718 /** ƒ}ƒbƒv‚ð[‚­ƒNƒ[ƒ“•¡»‚·‚é 
    2719  * 
    2720  * @param map       [in] ƒ}ƒbƒvƒIƒuƒWƒFƒNƒg 
    2721  * @param len       [in] ’·‚³ 
    2722  * 
    2723  * @return          ƒNƒ[ƒ“•¡»‚³‚ꂽƒIƒuƒWƒFƒNƒg 
     2712/** マップを深くクローン複製する 
     2713 * 
     2714 * @param map       [in] マップオブジェクト 
     2715 * @param len       [in] 長さ 
     2716 * 
     2717 * @return          クローン複製されたオブジェクト 
    27242718 */ 
    27252719 
     
    27412735 
    27422736/*------------------------------------------------------------------------*/ 
    2743 /** ƒtƒŒ[ƒ€‚̃IƒuƒWƒFƒNƒgƒf[ƒ^‚©‚çƒXƒƒbƒg‚ðíœ‚·‚é 
    2744  * 
    2745  * @param obj       [in] ƒtƒŒ[ƒ€‚̃IƒuƒWƒFƒNƒgƒf[ƒ^ 
    2746  * @param slot      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    2747  * 
    2748  * @return          ‚È‚µ 
     2737/** フレームのオブジェクトデータからスロットを削除する 
     2738 * 
     2739 * @param obj       [in] フレームのオブジェクトデータ 
     2740 * @param slot      [in] スロットシンボル 
     2741 * 
     2742 * @return          なし 
    27492743 */ 
    27502744 
     
    27852779 
    27862780/*------------------------------------------------------------------------*/ 
    2787 /** ƒtƒŒ[ƒ€‚Ü‚½‚Í”z—ñ‚̃IƒuƒWƒFƒNƒgƒf[ƒ^‚©‚çƒXƒƒbƒg‚Ü‚½‚ÍŽw’èˆÊ’u‚Ì—v‘f‚ðíœ‚·‚é 
    2788  * 
    2789  * @param obj       [in] ƒtƒŒ[ƒ€‚̃IƒuƒWƒFƒNƒgƒf[ƒ^ 
    2790  * @param slot      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹^ˆÊ’u 
    2791  * 
    2792  * @return          ‚È‚µ 
     2781/** フレームまたは配列のオブジェクトデータからスロットまたは指定位置の要素を削除する 
     2782 * 
     2783 * @param obj       [in] フレームのオブジェクトデータ 
     2784 * @param slot      [in] スロットシンボル/位置 
     2785 * 
     2786 * @return          なし 
    27932787 */ 
    27942788 
     
    28112805#pragma mark - 
    28122806/*------------------------------------------------------------------------*/ 
    2813 /** ƒ}ƒbƒv‚©‚çŽw’èˆÊ’u‚̃XƒƒbƒgƒVƒ“ƒ{ƒ‹‚ðŽæo‚· 
    2814  * 
    2815  * @param r         [in] ƒ}ƒbƒvƒIƒuƒWƒFƒNƒg 
    2816  * @param index     [in] ˆÊ’u 
    2817  * @param indexP    [i/o]ƒ}ƒbƒv‘S‘Ì‚©‚ç‚Ý‚½Œ»Ý‚ÌŠJŽnˆÊ’u 
    2818  * 
    2819  * @return          ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
     2807/** マップから指定位置のスロットシンボルを取出す 
     2808 * 
     2809 * @param r         [in] マップオブジェクト 
     2810 * @param index     [in] 位置 
     2811 * @param indexP    [i/o]マップ全体からみた現在の開始位置 
     2812 * 
     2813 * @return          スロットシンボル 
    28202814 */ 
    28212815 
     
    28572851 
    28582852/*------------------------------------------------------------------------*/ 
    2859 /** ”z—ñ‚©‚ç’l‚ðŒŸõ‚·‚é 
    2860  * 
    2861  * @param r         [in] ”z—ñ 
    2862  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    2863  * @param st        [in] ŠJŽnˆÊ’u 
    2864  * 
    2865  * @retval          ˆÊ’u        ¬Œ÷ 
    2866  * @retval          -1      ޏ”s 
     2853/** 配列から値を検索する 
     2854 * 
     2855 * @param r         [in] 配列 
     2856 * @param v         [in] 値オブジェクト 
     2857 * @param st        [in] 開始位置 
     2858 * 
     2859 * @retval          位置      成功 
     2860 * @retval          -1      失敗 
    28672861 */ 
    28682862 
     
    28812875        if (NewtMapIsSorted(r)) 
    28822876        { 
    2883             // ƒ}ƒbƒv‚ªƒ\[ƒg‚³‚ê‚Ä‚¢‚éê‡... 
     2877            // マップがソートされている場合... 
    28842878 
    28852879            newtSymDataRef  sym; 
     
    29092903 
    29102904/*------------------------------------------------------------------------*/ 
    2911 /** ƒ}ƒbƒv‚©‚ç’l‚ðŒŸõ‚·‚é 
    2912  * 
    2913  * @param r         [in] ƒ}ƒbƒvƒIƒuƒWƒFƒNƒg 
    2914  * @param v         [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    2915  * @param indexP    [out]ˆÊ’u 
    2916  * 
    2917  * @retval          true    ¬Œ÷ 
    2918  * @retval          false   Ž¸”s 
     2905/** マップから値を検索する 
     2906 * 
     2907 * @param r         [in] マップオブジェクト 
     2908 * @param v         [in] スロットシンボル 
     2909 * @param indexP    [out]位置 
     2910 * 
     2911 * @retval          true    成功 
     2912 * @retval          false   失敗 
    29192913 */ 
    29202914 
     
    29512945 
    29522946/*------------------------------------------------------------------------*/ 
    2953 /** ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg‚̃}ƒbƒv‚ðŽæ“¾ 
    2954  * 
    2955  * @param r         [in] ƒtƒŒ[ƒ€ 
    2956  * 
    2957  * @return          ƒ}ƒbƒv 
     2947/** フレームオブジェクトのマップを取得 
     2948 * 
     2949 * @param r         [in] フレーム 
     2950 * 
     2951 * @return          マップ 
    29582952 */ 
    29592953 
     
    29732967#pragma mark - 
    29742968/*------------------------------------------------------------------------*/ 
    2975 /** ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg‚©‚çƒXƒƒbƒg‚̈ʒu‚ð’T‚· 
    2976  * 
    2977  * @param frame     [in] ƒtƒŒ[ƒ€ 
    2978  * @param slot      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    2979  * 
    2980  * @retval          ƒXƒƒbƒg‚̈ʒu      ‚݂‚©‚Á‚½ê‡ 
    2981  * @retval          -1              ‚݂‚©‚ç‚È‚©‚Á‚½ê‡ 
     2969/** フレームオブジェクトからスロットの位置を探す 
     2970 * 
     2971 * @param frame     [in] フレーム 
     2972 * @param slot      [in] スロットシンボル 
     2973 * 
     2974 * @retval          スロットの位置     みつかった場合 
     2975 * @retval          -1              みつからなかった場合 
    29822976 */ 
    29832977 
     
    29992993 
    30002994/*------------------------------------------------------------------------*/ 
    3001 /** ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg‚ª _proto ƒXƒƒbƒg‚ðŽ‚Â‚©ƒ`ƒFƒbƒN‚·‚é 
    3002  * 
    3003  * @param frame     [in] ƒtƒŒ[ƒ€ 
    3004  * 
    3005  * @retval          true    _proto ƒXƒƒbƒg‚ðŽ‚Â 
    3006  * @retval          false   _proto ƒXƒƒbƒg‚ðŽ‚½‚È‚¢ 
     2995/** フレームオブジェクトが _proto スロットを持つかチェックする 
     2996 * 
     2997 * @param frame     [in] フレーム 
     2998 * 
     2999 * @retval          true    _proto スロットを持つ 
     3000 * @retval          false   _proto スロットを持たない 
    30073001 */ 
    30083002 
     
    30183012 
    30193013/*------------------------------------------------------------------------*/ 
    3020 /** ƒtƒŒ[ƒ€“à‚̃Xƒƒbƒg‚Ì—L–³‚𒲂ׂé 
    3021  * 
    3022  * @param frame     [in] ƒtƒŒ[ƒ€ 
    3023  * @param slot      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    3024  * 
    3025  * @retval          true    ƒXƒƒbƒg‚ª‘¶Ý‚·‚é 
    3026  * @retval          false   ƒXƒƒbƒg‚ª‘¶Ý‚µ‚È‚¢ 
     3014/** フレーム内のスロットの有無を調べる 
     3015 * 
     3016 * @param frame     [in] フレーム 
     3017 * @param slot      [in] スロットシンボル 
     3018 * 
     3019 * @retval          true    スロットが存在する 
     3020 * @retval          false   スロットが存在しない 
    30273021 */ 
    30283022 
     
    30443038 
    30453039/*------------------------------------------------------------------------*/ 
    3046 /** ƒXƒƒbƒgƒIƒuƒWƒFƒNƒg‚̃AƒNƒZƒXƒpƒX‚©‚ç’l‚ðŽæ“¾‚·‚é 
    3047  * 
    3048  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    3049  * @param p         [in] ƒAƒNƒZƒXƒpƒX 
    3050  * 
    3051  * @return          ’lƒIƒuƒWƒFƒNƒg 
     3040/** スロットオブジェクトのアクセスパスから値を取得する 
     3041 * 
     3042 * @param r         [in] オブジェクト 
     3043 * @param p         [in] アクセスパス 
     3044 * 
     3045 * @return          値オブジェクト 
    30523046 */ 
    30533047 
     
    30623056 
    30633057/*------------------------------------------------------------------------*/ 
    3064 /** ƒIƒuƒWƒFƒNƒg“à‚̃AƒNƒZƒXƒpƒX‚Ì—L–³‚𒲂ׂé 
    3065  * 
    3066  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    3067  * @param p         [in] ƒAƒNƒZƒXƒpƒX 
    3068  * 
    3069  * @retval          true    ƒAƒNƒZƒXƒpƒX‚ª‘¶Ý‚·‚é 
    3070  * @retval          false   ƒAƒNƒZƒXƒpƒX‚ª‘¶Ý‚µ‚È‚¢ 
     3058/** オブジェクト内のアクセスパスの有無を調べる 
     3059 * 
     3060 * @param r         [in] オブジェクト 
     3061 * @param p         [in] アクセスパス 
     3062 * 
     3063 * @retval          true    アクセスパスが存在する 
     3064 * @retval          false   アクセスパスが存在しない 
    30713065 */ 
    30723066 
     
    30783072 
    30793073/*------------------------------------------------------------------------*/ 
    3080 /** ƒIƒuƒWƒFƒNƒg‚̃AƒNƒZƒXƒpƒX‚Ì’l‚ðŽæ“¾ 
    3081  * 
    3082  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    3083  * @param p         [in] ƒAƒNƒZƒXƒpƒX 
    3084  * @param slotP     [out]ƒXƒƒbƒg 
    3085  * 
    3086  * @return          ’lƒIƒuƒWƒFƒNƒg 
     3074/** オブジェクトのアクセスパスの値を取得 
     3075 * 
     3076 * @param r         [in] オブジェクト 
     3077 * @param p         [in] アクセスパス 
     3078 * @param slotP     [out]スロット 
     3079 * 
     3080 * @return          値オブジェクト 
    30873081 */ 
    30883082 
     
    31303124 
    31313125/*------------------------------------------------------------------------*/ 
    3132 /** ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚ÌŽw’èˆÊ’u‚©‚ç’l‚ðŽæ“¾‚·‚é 
    3133  * 
    3134  * @param r         [in] ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg 
    3135  * @param p         [in] ˆÊ’u 
    3136  * 
    3137  * @return          ’lƒIƒuƒWƒFƒNƒg 
     3126/** バイナリオブジェクトの指定位置から値を取得する 
     3127 * 
     3128 * @param r         [in] バイナリオブジェクト 
     3129 * @param p         [in] 位置 
     3130 * 
     3131 * @return          値オブジェクト 
    31383132 */ 
    31393133 
     
    31573151 
    31583152/*------------------------------------------------------------------------*/ 
    3159 /** ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚ÌŽw’èˆÊ’u‚É’l‚ðƒZƒbƒg‚·‚é 
    3160  * 
    3161  * @param r         [in] ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg 
    3162  * @param p         [in] ˆÊ’u 
    3163  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    3164  * 
    3165  * @return          ’lƒIƒuƒWƒFƒNƒg 
     3153/** バイナリオブジェクトの指定位置に値をセットする 
     3154 * 
     3155 * @param r         [in] バイナリオブジェクト 
     3156 * @param p         [in] 位置 
     3157 * @param v         [in] 値オブジェクト 
     3158 * 
     3159 * @return          値オブジェクト 
    31663160 */ 
    31673161 
     
    31973191 
    31983192/*------------------------------------------------------------------------*/ 
    3199 /** •¶Žš—ñ‚ÌŽw’èˆÊ’u‚©‚ç•¶Žš‚ðŽæ“¾ 
    3200  * 
    3201  * @param r         [in] •¶ŽšƒIƒuƒWƒFƒNƒg 
    3202  * @param p         [in] ˆÊ’u 
    3203  * 
    3204  * @return          •¶ŽšƒIƒuƒWƒFƒNƒg 
     3193/** 文字列の指定位置から文字を取得 
     3194 * 
     3195 * @param r         [in] 文字オブジェクト 
     3196 * @param p         [in] 位置 
     3197 * 
     3198 * @return          文字オブジェクト 
    32053199 */ 
    32063200 
     
    32243218 
    32253219/*------------------------------------------------------------------------*/ 
    3226 /** •¶Žš—ñ‚ÌŽw’èˆÊ’u‚É•¶Žš‚ðƒZƒbƒg‚·‚é 
    3227  * 
    3228  * @param r         [in] •¶ŽšƒIƒuƒWƒFƒNƒg 
    3229  * @param p         [in] ˆÊ’u 
    3230  * @param v         [in] •¶ŽšƒIƒuƒWƒFƒNƒg 
    3231  * 
    3232  * @return          •¶ŽšƒIƒuƒWƒFƒNƒg 
     3220/** 文字列の指定位置に文字をセットする 
     3221 * 
     3222 * @param r         [in] 文字オブジェクト 
     3223 * @param p         [in] 位置 
     3224 * @param v         [in] 文字オブジェクト 
     3225 * 
     3226 * @return          文字オブジェクト 
    32333227 */ 
    32343228 
     
    32573251 
    32583252        if (slen <= p) 
    3259         {   // •¶Žš—ñ‚ª‰„‚Ñ‚½‚̂ŏI’[•¶Žš‚ðƒZƒbƒg 
     3253        {   // 文字列が延びたので終端文字をセット 
    32603254            str[p + 1] = '\0'; 
    32613255        } 
     
    32713265 
    32723266/*------------------------------------------------------------------------*/ 
    3273 /** ƒXƒƒbƒgƒIƒuƒWƒFƒNƒg‚ÌŽw’èˆÊ’uƒg‚©‚ç’l‚ðŽæ“¾ 
    3274  * 
    3275  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    3276  * @param p         [in] ˆÊ’u 
    3277  * 
    3278  * @return          ’lƒIƒuƒWƒFƒNƒg 
     3267/** スロットオブジェクトの指定位置トから値を取得 
     3268 * 
     3269 * @param r         [in] オブジェクト 
     3270 * @param p         [in] 位置 
     3271 * 
     3272 * @return          値オブジェクト 
    32793273 */ 
    32803274 
     
    32983292 
    32993293/*------------------------------------------------------------------------*/ 
    3300 /** ƒXƒƒbƒgƒIƒuƒWƒFƒNƒg‚ɂ̎w’èˆÊ’u‚É’l‚ðƒZƒbƒg‚·‚é 
    3301  * 
    3302  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    3303  * @param p         [in] ˆÊ’u 
    3304  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    3305  * 
    3306  * @return          ’lƒIƒuƒWƒFƒNƒg 
     3294/** スロットオブジェクトにの指定位置に値をセットする 
     3295 * 
     3296 * @param r         [in] オブジェクト 
     3297 * @param p         [in] 位置 
     3298 * @param v         [in] 値オブジェクト 
     3299 * 
     3300 * @return          値オブジェクト 
    33073301 */ 
    33083302 
     
    33313325 
    33323326/*------------------------------------------------------------------------*/ 
    3333 /** ƒXƒƒbƒgƒIƒuƒWƒFƒNƒg‚É’l‚ð‘}“ü‚·‚é 
    3334  * 
    3335  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    3336  * @param p         [in] ˆÊ’u 
    3337  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    3338  * 
    3339  * @return          ’lƒIƒuƒWƒFƒNƒg 
     3327/** スロットオブジェクトに値を挿入する 
     3328 * 
     3329 * @param r         [in] オブジェクト 
     3330 * @param p         [in] 位置 
     3331 * @param v         [in] 値オブジェクト 
     3332 * 
     3333 * @return          値オブジェクト 
    33403334 */ 
    33413335 
     
    33653359 
    33663360/*------------------------------------------------------------------------*/ 
    3367 /** ”z—ñ‚ÌŽw’èˆÊ’u‚©‚ç’l‚ðŽæ“¾‚·‚é 
    3368  * 
    3369  * @param r         [in] ”z—ñƒIƒuƒWƒFƒNƒg 
    3370  * @param p         [in] ˆÊ’u 
    3371  * 
    3372  * @return          ’lƒIƒuƒWƒFƒNƒg 
     3361/** 配列の指定位置から値を取得する 
     3362 * 
     3363 * @param r         [in] 配列オブジェクト 
     3364 * @param p         [in] 位置 
     3365 * 
     3366 * @return          値オブジェクト 
    33733367 */ 
    33743368 
     
    33803374 
    33813375/*------------------------------------------------------------------------*/ 
    3382 /** ”z—ñ‚ÌŽw’èˆÊ’u‚É’l‚ðƒZƒbƒg‚·‚é 
    3383  * 
    3384  * @param r         [in] ”z—ñƒIƒuƒWƒFƒNƒg 
    3385  * @param p         [in] ˆÊ’u 
    3386  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    3387  * 
    3388  * @return          ’lƒIƒuƒWƒFƒNƒg 
     3376/** 配列の指定位置に値をセットする 
     3377 * 
     3378 * @param r         [in] 配列オブジェクト 
     3379 * @param p         [in] 位置 
     3380 * @param v         [in] 値オブジェクト 
     3381 * 
     3382 * @return          値オブジェクト 
    33893383 */ 
    33903384 
     
    33963390 
    33973391/*------------------------------------------------------------------------*/ 
    3398 /** ”z—ñ‚ÌŽw’èˆÊ’u‚É’l‚ð‘}“ü‚·‚é 
    3399  * 
    3400  * @param r         [in] ”z—ñƒIƒuƒWƒFƒNƒg 
    3401  * @param p         [in] ˆÊ’u 
    3402  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    3403  * 
    3404  * @return          ’lƒIƒuƒWƒFƒNƒg 
     3392/** 配列の指定位置に値を挿入する 
     3393 * 
     3394 * @param r         [in] 配列オブジェクト 
     3395 * @param p         [in] 位置 
     3396 * @param v         [in] 値オブジェクト 
     3397 * 
     3398 * @return          値オブジェクト 
    34053399 */ 
    34063400 
     
    34123406 
    34133407/*------------------------------------------------------------------------*/ 
    3414 /** ƒtƒŒ[ƒ€‚̃Xƒƒbƒg‚©‚ç’l‚ðŽæ“¾‚·‚é 
    3415  * 
    3416  * @param r         [in] ƒtƒŒ[ƒ€ 
    3417  * @param p         [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    3418  * 
    3419  * @return          ’lƒIƒuƒWƒFƒNƒg 
     3408/** フレームのスロットから値を取得する 
     3409 * 
     3410 * @param r         [in] フレーム 
     3411 * @param p         [in] スロットシンボル 
     3412 * 
     3413 * @return          値オブジェクト 
    34203414 */ 
    34213415 
     
    34273421 
    34283422/*------------------------------------------------------------------------*/ 
    3429 /** ƒtƒŒ[ƒ€‚̃Xƒƒbƒg‚É’l‚ðƒZƒbƒg‚·‚é 
    3430  * 
    3431  * @param r         [in] ƒtƒŒ[ƒ€ 
    3432  * @param p         [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    3433  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    3434  * 
    3435  * @return          ’lƒIƒuƒWƒFƒNƒg 
     3423/** フレームのスロットに値をセットする 
     3424 * 
     3425 * @param r         [in] フレーム 
     3426 * @param p         [in] スロットシンボル 
     3427 * @param v         [in] 値オブジェクト 
     3428 * 
     3429 * @return          値オブジェクト 
    34363430 */ 
    34373431 
     
    34603454 
    34613455/*------------------------------------------------------------------------*/ 
    3462 /** ƒIƒuƒWƒFƒNƒg‚ÌŽw’肳‚ꂽˆÊ’u‚©‚ç’l‚ðŽæ“¾ 
    3463  * 
    3464  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    3465  * @param p         [in] ˆÊ’u 
    3466  * 
    3467  * @return          ’lƒIƒuƒWƒFƒNƒg 
     3456/** オブジェクトの指定された位置から値を取得 
     3457 * 
     3458 * @param r         [in] オブジェクト 
     3459 * @param p         [in] 位置 
     3460 * 
     3461 * @return          値オブジェクト 
    34683462 */ 
    34693463 
     
    34923486 
    34933487/*------------------------------------------------------------------------*/ 
    3494 /** ƒIƒuƒWƒFƒNƒg‚ÌŽw’肳‚ꂽˆÊ’u‚É’l‚ðƒZƒbƒg‚·‚é 
    3495  * 
    3496  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    3497  * @param p         [in] ˆÊ’u 
    3498  * @param v         [in] ’lƒIƒuƒWƒFƒNƒg 
    3499  * 
    3500  * @return          ’lƒIƒuƒWƒFƒNƒg 
     3488/** オブジェクトの指定された位置に値をセットする 
     3489 * 
     3490 * @param r         [in] オブジェクト 
     3491 * @param p         [in] 位置 
     3492 * @param v         [in] 値オブジェクト 
     3493 * 
     3494 * @return          値オブジェクト 
    35013495 */ 
    35023496 
     
    35263520#pragma mark - 
    35273521/*------------------------------------------------------------------------*/ 
    3528 /** ŒŸõ‚³‚ꂽ•ϐ”‚̕ۑ¶êŠ‚É’l‚ðƒZƒbƒg‚·‚é 
    3529  * 
    3530  * @param start     [in] ŠJŽnƒIƒuƒWƒFƒNƒg 
    3531  * @param name      [in] •ϐ”–¼ƒVƒ“ƒ{ƒ‹ 
    3532  * @param value     [in] ’lƒIƒuƒWƒFƒNƒg 
    3533  * 
    3534  * @retval          true    ’l‚ªƒZƒbƒg‚Å‚«‚½ 
    3535  * @retval          false   ’l‚ªƒZƒbƒg‚Å‚«‚È‚©‚Á‚½ 
     3522/** 検索された変数の保存場所に値をセットする 
     3523 * 
     3524 * @param start     [in] 開始オブジェクト 
     3525 * @param name      [in] 変数名シンボル 
     3526 * @param value     [in] 値オブジェクト 
     3527 * 
     3528 * @retval          true    値がセットできた 
     3529 * @retval          false   値がセットできなかった 
    35363530 */ 
    35373531 
     
    35693563 
    35703564/*------------------------------------------------------------------------*/ 
    3571 /** ƒŒƒLƒVƒJƒ‹ƒXƒR[ƒv‚ÅŒŸõ‚³‚ꂽ•ϐ”‚̕ۑ¶êŠ‚É’l‚ðƒZƒbƒg‚·‚é 
    3572  * 
    3573  * @param start     [in] ŠJŽnƒIƒuƒWƒFƒNƒg 
    3574  * @param name      [in] •ϐ”–¼ƒVƒ“ƒ{ƒ‹ 
    3575  * @param value     [in] ’lƒIƒuƒWƒFƒNƒg 
    3576  * 
    3577  * @retval          true    ’l‚ªƒZƒbƒg‚Å‚«‚½ 
    3578  * @retval          false   ’l‚ªƒZƒbƒg‚Å‚«‚È‚©‚Á‚½ 
     3565/** レキシカルスコープで検索された変数の保存場所に値をセットする 
     3566 * 
     3567 * @param start     [in] 開始オブジェクト 
     3568 * @param name      [in] 変数名シンボル 
     3569 * @param value     [in] 値オブジェクト 
     3570 * 
     3571 * @retval          true    値がセットできた 
     3572 * @retval          false   値がセットできなかった 
    35793573 */ 
    35803574 
     
    36043598 
    36053599/*------------------------------------------------------------------------*/ 
    3606 /** ƒŒƒLƒVƒJƒ‹ƒXƒR[ƒv‚ŕϐ”‚Ì‘¶Ý‚𒲂ׂé 
    3607  * 
    3608  * @param start     [in] ŠJŽnƒIƒuƒWƒFƒNƒg 
    3609  * @param name      [in] •ϐ”–¼ƒVƒ“ƒ{ƒ‹ 
    3610  * 
    3611  * @retval          true    •ϐ”‚ª‚ ‚é 
    3612  * @retval          false   •ϐ”‚ª‚È‚¢ 
     3600/** レキシカルスコープで変数の存在を調べる 
     3601 * 
     3602 * @param start     [in] 開始オブジェクト 
     3603 * @param name      [in] 変数名シンボル 
     3604 * 
     3605 * @retval          true    変数がある 
     3606 * @retval          false   変数がない 
    36133607 */ 
    36143608 
     
    36353629 
    36363630/*------------------------------------------------------------------------*/ 
    3637 /** ƒvƒƒgEƒyƒAƒŒƒ“ƒgŒp³‚ŃtƒŒ[ƒ€“à‚̃Xƒƒbƒg‚Ì—L–³‚𒲂ׂé 
    3638  * 
    3639  * @param r         [in] ƒtƒŒ[ƒ€ 
    3640  * @param name      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    3641  * 
    3642  * @retval          true    ƒXƒƒbƒg‚ª‘¶Ý‚·‚é 
    3643  * @retval          false   ƒXƒƒbƒg‚ª‘¶Ý‚µ‚È‚¢ 
     3631/** プロト・ペアレント継承でフレーム内のスロットの有無を調べる 
     3632 * 
     3633 * @param r         [in] フレーム 
     3634 * @param name      [in] スロットシンボル 
     3635 * 
     3636 * @retval          true    スロットが存在する 
     3637 * @retval          false   スロットが存在しない 
    36443638 */ 
    36453639 
     
    36733667#pragma mark - 
    36743668/*------------------------------------------------------------------------*/ 
    3675 /** ƒlƒCƒeƒBƒuŠÖ”‚̊֐”ƒIƒuƒWƒFƒNƒg‚©‚çŠÖ”‚̃|ƒCƒ“ƒ^‚ðŽæ“¾‚·‚é 
    3676  * 
    3677  * @param r         [in] ŠÖ”ƒIƒuƒWƒFƒNƒg 
    3678  * 
    3679  * @return          ŠÖ”‚̃|ƒCƒ“ƒ^ 
     3669/** ネイティブ関数の関数オブジェクトから関数のポインタを取得する 
     3670 * 
     3671 * @param r         [in] 関数オブジェクト 
     3672 * 
     3673 * @return          関数のポインタ 
    36803674 */ 
    36813675 
     
    36943688 
    36953689/*------------------------------------------------------------------------*/ 
    3696 /** ƒlƒCƒeƒBƒuŠÖ”ircvr‚È‚µj‚̊֐”ƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    3697  * 
    3698  * @param funcPtr       [in] ŠÖ”‚̃|ƒCƒ“ƒ^ 
    3699  * @param numArgs       [in] ˆø”‚̐” 
    3700  * @param indefinite    [in] •s’è’·ƒtƒ‰ƒO 
    3701  * @param doc           [in] à–¾•¶ 
    3702  * 
    3703  * @return              ŠÖ”ƒIƒuƒWƒFƒNƒg 
     3690/** ネイティブ関数(rcvrなし)の関数オブジェクトを作成する 
     3691 * 
     3692 * @param funcPtr       [in] 関数のポインタ 
     3693 * @param numArgs       [in] 引数の数 
     3694 * @param indefinite    [in] 不定長フラグ 
     3695 * @param doc           [in] 説明文 
     3696 * 
     3697 * @return              関数オブジェクト 
    37043698 */ 
    37053699 
     
    37293723 
    37303724/*------------------------------------------------------------------------*/ 
    3731 /** ƒlƒCƒeƒBƒuŠÖ”ircvr‚È‚µj‚̃Oƒ[ƒoƒ‹ŠÖ”‚ð“o˜^‚·‚é 
    3732  * 
    3733  * @param sym           [in] ƒOƒ[ƒoƒ‹ŠÖ”–¼ 
    3734  * @param funcPtr       [in] ŠÖ”‚̃|ƒCƒ“ƒ^ 
    3735  * @param numArgs       [in] ˆø”‚̐” 
    3736  * @param indefinite    [in] •s’è’·ƒtƒ‰ƒO 
    3737  * @param doc           [in] à–¾•¶ 
    3738  * 
    3739  * @return              ŠÖ”ƒIƒuƒWƒFƒNƒg 
     3725/** ネイティブ関数(rcvrなし)のグローバル関数を登録する 
     3726 * 
     3727 * @param sym           [in] グローバル関数名 
     3728 * @param funcPtr       [in] 関数のポインタ 
     3729 * @param numArgs       [in] 引数の数 
     3730 * @param indefinite    [in] 不定長フラグ 
     3731 * @param doc           [in] 説明文 
     3732 * 
     3733 * @return              関数オブジェクト 
    37403734 */ 
    37413735 
     
    37503744 
    37513745/*------------------------------------------------------------------------*/ 
    3752 /** ƒlƒCƒeƒBƒuŠÖ”ircvr‚ ‚èj‚̊֐”ƒIƒuƒWƒFƒNƒg‚ðì¬‚·‚é 
    3753  * 
    3754  * @param funcPtr       [in] ŠÖ”‚̃|ƒCƒ“ƒ^ 
    3755  * @param numArgs       [in] ˆø”‚̐” 
    3756  * @param indefinite    [in] •s’è’·ƒtƒ‰ƒO 
    3757  * @param doc           [in] à–¾•¶ 
    3758  * 
    3759  * @return              ŠÖ”ƒIƒuƒWƒFƒNƒg 
     3746/** ネイティブ関数(rcvrあり)の関数オブジェクトを作成する 
     3747 * 
     3748 * @param funcPtr       [in] 関数のポインタ 
     3749 * @param numArgs       [in] 引数の数 
     3750 * @param indefinite    [in] 不定長フラグ 
     3751 * @param doc           [in] 説明文 
     3752 * 
     3753 * @return              関数オブジェクト 
    37603754 */ 
    37613755 
     
    37853779 
    37863780/*------------------------------------------------------------------------*/ 
    3787 /** ƒlƒCƒeƒBƒuŠÖ”ircvr‚ ‚èj‚̃Oƒ[ƒoƒ‹ŠÖ”‚ð“o˜^‚·‚é 
    3788  * 
    3789  * @param sym           [in] ƒOƒ[ƒoƒ‹ŠÖ”–¼ 
    3790  * @param funcPtr       [in] ŠÖ”‚̃|ƒCƒ“ƒ^ 
    3791  * @param numArgs       [in] ˆø”‚̐” 
    3792  * @param indefinite    [in] •s’è’·ƒtƒ‰ƒO 
    3793  * @param doc           [in] à–¾•¶ 
    3794  * 
    3795  * @return              ŠÖ”ƒIƒuƒWƒFƒNƒg 
     3781/** ネイティブ関数(rcvrあり)のグローバル関数を登録する 
     3782 * 
     3783 * @param sym           [in] グローバル関数名 
     3784 * @param funcPtr       [in] 関数のポインタ 
     3785 * @param numArgs       [in] 引数の数 
     3786 * @param indefinite    [in] 不定長フラグ 
     3787 * @param doc           [in] 説明文 
     3788 * 
     3789 * @return              関数オブジェクト 
    37963790 */ 
    37973791 
     
    38073801#pragma mark - 
    38083802/*------------------------------------------------------------------------*/ 
    3809 /** •¶Žš—ñ‚Ì‘O”¼•”‚ª•”•ª•¶Žš—ñ‚ƈê’v‚·‚é‚©ƒ`ƒFƒbƒN‚·‚é 
    3810  * 
    3811  * @param str       [in] •¶Žš—ñ 
    3812  * @param len       [in] •¶Žš—ñ‚Ì’·‚³ 
    3813  * @param sub       [in] •”•ª•¶Žš—ñ 
    3814  * @param sublen    [in] •”•ª•¶Žš—ñ‚Ì’·‚³ 
    3815  * 
    3816  * @retval          true    ‘O”¼•”‚ª•”•ª•¶Žš—ñ‚ƈê’v‚·‚é 
    3817  * @retval          false   ‘O”¼•”‚ª•”•ª•¶Žš—ñ‚ƈê’v‚µ‚È‚¢ 
     3803/** 文字列の前半部が部分文字列と一致するかチェックする 
     3804 * 
     3805 * @param str       [in] 文字列 
     3806 * @param len       [in] 文字列の長さ 
     3807 * @param sub       [in] 部分文字列 
     3808 * @param sublen    [in] 部分文字列の長さ 
     3809 * 
     3810 * @retval          true    前半部が部分文字列と一致する 
     3811 * @retval          false   前半部が部分文字列と一致しない 
    38183812 */ 
    38193813 
     
    38283822 
    38293823/*------------------------------------------------------------------------*/ 
    3830 /** sub ‚ª supr ‚̃TƒuƒNƒ‰ƒX‚ð‚©ƒ`ƒFƒbƒN‚·‚é 
    3831  * 
    3832  * @param sub       [in] ƒTƒuƒNƒ‰ƒX•¶Žš—ñ 
    3833  * @param sublen    [in] ƒTƒuƒX[ƒpƒNƒ‰ƒX•¶Žš—ñ‚Ì’·‚³ 
    3834  * @param supr      [in] ƒX[ƒpƒNƒ‰ƒX•¶Žš—ñ 
    3835  * @param suprlen   [in] ƒX[ƒpƒNƒ‰ƒX•¶Žš—ñ‚Ì’·‚³ 
    3836  * 
    3837  * @retval          true    ƒTƒuƒNƒ‰ƒX 
    3838  * @retval          false   ƒTƒuƒNƒ‰ƒX‚łȂ¢ 
     3824/** sub が supr のサブクラスをかチェックする 
     3825 * 
     3826 * @param sub       [in] サブクラス文字列 
     3827 * @param sublen    [in] サブスーパクラス文字列の長さ 
     3828 * @param supr      [in] スーパクラス文字列 
     3829 * @param suprlen   [in] スーパクラス文字列の長さ 
     3830 * 
     3831 * @retval          true    サブクラス 
     3832 * @retval          false   サブクラスでない 
    38393833 */ 
    38403834 
     
    38553849 
    38563850/*------------------------------------------------------------------------*/ 
    3857 /** sub ‚ª supr ‚̃TƒuƒNƒ‰ƒX‚ðŠÜ‚Þ‚©ƒ`ƒFƒbƒN‚·‚é 
    3858  * 
    3859  * @param sub       [in] ƒTƒuƒNƒ‰ƒX•¶Žš—ñ 
    3860  * @param sublen    [in] ƒTƒuƒX[ƒpƒNƒ‰ƒX•¶Žš—ñ‚Ì’·‚³ 
    3861  * @param supr      [in] ƒX[ƒpƒNƒ‰ƒX•¶Žš—ñ 
    3862  * @param suprlen   [in] ƒX[ƒpƒNƒ‰ƒX•¶Žš—ñ‚Ì’·‚³ 
    3863  * 
    3864  * @retval          true    ƒTƒuƒNƒ‰ƒX‚ðŠÜ‚Þ 
    3865  * @retval          false   ƒTƒuƒNƒ‰ƒX‚ðŠÜ‚܂Ȃ¢ 
     3851/** sub が supr のサブクラスを含むかチェックする 
     3852 * 
     3853 * @param sub       [in] サブクラス文字列 
     3854 * @param sublen    [in] サブスーパクラス文字列の長さ 
     3855 * @param supr      [in] スーパクラス文字列 
     3856 * @param suprlen   [in] スーパクラス文字列の長さ 
     3857 * 
     3858 * @retval          true    サブクラスを含む 
     3859 * @retval          false   サブクラスを含まない 
    38663860 */ 
    38673861 
     
    38893883 
    38903884/*------------------------------------------------------------------------*/ 
    3891 /** sub ‚ª supr ‚̃TƒuƒNƒ‰ƒX‚ðŠÜ‚Þ‚©ƒ`ƒFƒbƒN‚·‚é 
    3892  * 
    3893  * @param sub       [in] ƒTƒuƒNƒ‰ƒX 
    3894  * @param supr      [in] ƒX[ƒpƒNƒ‰ƒX 
    3895  * 
    3896  * @retval          true    ƒTƒuƒNƒ‰ƒX‚ðŠÜ‚Þ 
    3897  * @retval          false   ƒTƒuƒNƒ‰ƒX‚ðŠÜ‚܂Ȃ¢ 
     3885/** sub が supr のサブクラスを含むかチェックする 
     3886 * 
     3887 * @param sub       [in] サブクラス 
     3888 * @param supr      [in] スーパクラス 
     3889 * 
     3890 * @retval          true    サブクラスを含む 
     3891 * @retval          false   サブクラスを含まない 
    38983892 */ 
    38993893 
     
    39163910 
    39173911/*------------------------------------------------------------------------*/ 
    3918 /** sub ‚ª supr ‚̃TƒuƒNƒ‰ƒX‚©ƒ`ƒFƒbƒN‚·‚é 
    3919  * 
    3920  * @param sub       [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚P 
    3921  * @param supr      [in] ƒVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚Q 
    3922  * 
    3923  * @retval          true    ƒTƒuƒNƒ‰ƒX 
    3924  * @retval          false   ƒTƒuƒNƒ‰ƒX‚łȂ¢ 
     3912/** sub が supr のサブクラスかチェックする 
     3913 * 
     3914 * @param sub       [in] シンボルオブジェクト1 
     3915 * @param supr      [in] シンボルオブジェクト2 
     3916 * 
     3917 * @retval          true    サブクラス 
     3918 * @retval          false   サブクラスでない 
    39253919 */ 
    39263920 
     
    39433937 
    39443938/*------------------------------------------------------------------------*/ 
    3945 /** obj ‚ª r ‚̃Cƒ“ƒXƒ^ƒ“ƒX‚©ƒ`ƒFƒbƒN‚·‚é 
    3946  * 
    3947  * @param obj       [in] ƒIƒuƒWƒFƒNƒg 
    3948  * @param r         [in] ƒNƒ‰ƒXƒVƒ“ƒ{ƒ‹ 
    3949  * 
    3950  * @retval          true    ƒCƒ“ƒXƒ^ƒ“ƒX 
    3951  * @retval          false   ƒCƒ“ƒXƒ^ƒ“ƒX‚łȂ¢ 
     3939/** obj が r のインスタンスかチェックする 
     3940 * 
     3941 * @param obj       [in] オブジェクト 
     3942 * @param r         [in] クラスシンボル 
     3943 * 
     3944 * @retval          true    インスタンス 
     3945 * @retval          false   インスタンスでない 
    39523946 */ 
    39533947 
     
    39603954#pragma mark - 
    39613955/*------------------------------------------------------------------------*/ 
    3962 /** •¶Žš—ñƒIƒuƒWƒFƒNƒg‚̍Ōã‚É•¶Žš—ñ‚ð’ljÁ‚·‚é 
    3963  * 
    3964  * @param r         [in] •¶Žš—ñƒIƒuƒWƒFƒNƒg 
    3965  * @param s         [in] ’ljÁ‚·‚é•¶Žš—ñ 
    3966  * 
    3967  * @return          •¶Žš—ñƒIƒuƒWƒFƒNƒg 
     3956/** 文字列オブジェクトの最後に文字列を追加する 
     3957 * 
     3958 * @param r         [in] 文字列オブジェクト 
     3959 * @param s         [in] 追加する文字列 
     3960 * 
     3961 * @return          文字列オブジェクト 
    39683962 */ 
    39693963 
     
    39783972 
    39793973/*------------------------------------------------------------------------*/ 
    3980 /** •¶Žš—ñƒIƒuƒWƒFƒNƒg‚̍Ōã‚ÉŽw’肳‚ꂽ’·‚³‚Ì•¶Žš—ñ‚ð’ljÁ‚·‚é 
    3981  * 
    3982  * @param r         [in] •¶Žš—ñƒIƒuƒWƒFƒNƒg 
    3983  * @param s         [in] ’ljÁ‚·‚é•¶Žš—ñ 
    3984  * @param slen      [in] ’ljÁ‚·‚é•¶Žš—ñ‚Ì’·‚³ 
    3985  * 
    3986  * @return          •¶Žš—ñƒIƒuƒWƒFƒNƒg 
     3974/** 文字列オブジェクトの最後に指定された長さの文字列を追加する 
     3975 * 
     3976 * @param r         [in] 文字列オブジェクト 
     3977 * @param s         [in] 追加する文字列 
     3978 * @param slen      [in] 追加する文字列の長さ 
     3979 * 
     3980 * @return          文字列オブジェクト 
    39873981 */ 
    39883982 
     
    40204014#pragma mark - 
    40214015/*------------------------------------------------------------------------*/ 
    4022 /** ŠÂ‹«•ϐ”‚̎擾 
    4023  * 
    4024  * @param s         [in] •¶Žš—ñ 
    4025  * 
    4026  * @return          •¶Žš—ñƒIƒuƒWƒFƒNƒg 
     4016/** 環境変数の取得 
     4017 * 
     4018 * @param s         [in] 文字列 
     4019 * 
     4020 * @return          文字列オブジェクト 
    40274021 */ 
    40284022 
  • NEWT0/trunk/src/newt_core/NewtParser.c

    r39 r68  
    22/** 
    33 * @file    NewtParser.c 
    4  * @brief   \•¶–؂̐¶¬ 
     4 * @brief   構文木の生成 
    55 * 
    66 * @author  M.Nukui 
     
    1111 
    1212 
    13 /* ƒwƒbƒ_ƒtƒ@ƒCƒ‹ */ 
     13/* ヘッダファイル */ 
    1414#include <stdlib.h> 
    1515#include <string.h> 
     
    2828 
    2929 
    30 /* Œ^éŒ¾ */ 
    31  
    32 /// “ü—̓f[ƒ^ 
     30/* 型宣言 */ 
     31 
     32/// 入力データ 
    3333typedef struct { 
    34     const char *    data;       ///< “ü—̓f[ƒ^ 
    35     const char *    currp;      ///< Œ»Ý‚Ì“ü—͈ʒu 
    36     const char *    limit;      ///< “ü—̓f[ƒ^‚̍Ōã 
     34    const char *    data;       ///< 入力データ 
     35    const char *    currp;      ///< 現在の入力位置 
     36    const char *    limit;      ///< 入力データの最後 
    3737} nps_inputdata_t; 
    3838 
    3939 
    40 /* ƒOƒ[ƒoƒ‹•ϐ” */ 
    41 nps_env_t               nps_env;        ///< ƒp[ƒTŠÂ‹« 
    42  
    43  
    44 /* ƒ[ƒJƒ‹•ϐ” */ 
    45 static newtStack        nps_stree;      ///< \•¶–؃Xƒ^ƒbƒNî•ñ 
    46 static nps_inputdata_t  nps_inputdata;  ///< “ü—̓f[ƒ^ 
    47  
    48  
    49 /* ƒ}ƒNƒ */ 
    50 #define STREESTACK      ((nps_syntax_node_t *)nps_stree.stackp)     ///< \•¶–؃Xƒ^ƒbƒN 
    51 #define CX              (nps_stree.sp)                              ///< \•¶–؃Xƒ^ƒbƒNƒ|ƒCƒ“ƒ^ 
    52  
    53  
    54 /* ŠÖ”ƒvƒƒgƒ^ƒCƒv */ 
     40/* グローバル変数 */ 
     41nps_env_t               nps_env;        ///< パーサ環境 
     42 
     43 
     44/* ローカル変数 */ 
     45static newtStack        nps_stree;      ///< 構文木スタック情報 
     46static nps_inputdata_t  nps_inputdata;  ///< 入力データ 
     47 
     48 
     49/* マクロ */ 
     50#define STREESTACK      ((nps_syntax_node_t *)nps_stree.stackp)     ///< 構文木スタック 
     51#define CX              (nps_stree.sp)                              ///< 構文木スタックポインタ 
     52 
     53 
     54/* 関数プロトタイプ */ 
    5555static void     NPSBindParserInput(const char * s); 
    5656static int      nps_yyinput_str(char * buff, int max_size); 
     
    6464#pragma mark - 
    6565/*------------------------------------------------------------------------*/ 
    66 /** \•¶‰ðÍ‚·‚é•¶Žš—ñ‚ðƒZƒbƒg‚·‚é 
    67  * 
    68  * @param s         [in] •¶Žš—ñ 
    69  * 
    70  * @return          ‚È‚µ 
     66/** 構文解析する文字列をセットする 
     67 * 
     68 * @param s         [in] 文字列 
     69 * 
     70 * @return          なし 
    7171 */ 
    7272 
     
    8383 
    8484/*------------------------------------------------------------------------*/ 
    85 /** \•¶‰ðÍ‚·‚éƒf[ƒ^‚ð•¶Žš—ñ‚©‚çŽæo‚· 
    86  * 
    87  * @param buff      [out]ƒoƒbƒtƒ@ 
    88  * @param max_size  [in] Å‘å’· 
    89  * 
    90  * @return          Žæo‚µ‚½ƒf[ƒ^ƒTƒCƒY 
     85/** 構文解析するデータを文字列から取出す 
     86 * 
     87 * @param buff      [out]バッファ 
     88 * @param max_size  [in] 最大長 
     89 * 
     90 * @return          取出したデータサイズ 
    9191 */ 
    9292 
     
    109109 
    110110/*------------------------------------------------------------------------*/ 
    111 /** \•¶‰ðÍ‚·‚éƒf[ƒ^‚ðŽæo‚· 
    112  * 
    113  * @param yyin      [in] “ü—̓tƒ@ƒCƒ‹ 
    114  * @param buff      [out]ƒoƒbƒtƒ@ 
    115  * @param max_size  [in] Å‘å’· 
    116  * 
    117  * @return          Žæo‚µ‚½ƒf[ƒ^ƒTƒCƒY 
     111/** 構文解析するデータを取出す 
     112 * 
     113 * @param yyin      [in] 入力ファイル 
     114 * @param buff      [out]バッファ 
     115 * @param max_size  [in] 最大長 
     116 * 
     117 * @return          取出したデータサイズ 
    118118 */ 
    119119 
     
    129129#pragma mark - 
    130130/*------------------------------------------------------------------------*/ 
    131 /** \•¶‰ðÍ‚Ì‚½‚߂̏‰Šú‰» 
    132  * 
    133  * @param pool      [in] ƒƒ‚ƒŠƒv[ƒ‹ 
    134  * 
    135  * @return          ‚È‚µ 
     131/** 構文解析のための初期化 
     132 * 
     133 * @param pool      [in] メモリプール 
     134 * 
     135 * @return          なし 
    136136 */ 
    137137 
     
    153153 
    154154/*------------------------------------------------------------------------*/ 
    155 /** \•¶‰ðÍ‚·‚é 
    156  * 
    157  * @param path      [in] “ü—̓tƒ@ƒCƒ‹‚̃pƒX 
    158  * @param streeP    [out]\•¶–Ø 
    159  * @param sizeP     [out]\•¶–؂̃TƒCƒY 
    160  * @param is_file   [in] ƒtƒ@ƒCƒ‹‚©‚Ç‚¤‚©i#! ˆ—‚ð‚¨‚±‚È‚¤‚©‚Ç‚¤‚©j 
    161  * 
    162  * @return          ƒGƒ‰[ƒR[ƒh 
     155/** 構文解析する 
     156 * 
     157 * @param path      [in] 入力ファイルのパス 
     158 * @param streeP    [out]構文木 
     159 * @param sizeP     [out]構文木のサイズ 
     160 * @param is_file   [in] ファイルかどうか(#! 処理をおこなうかどうか) 
     161 * 
     162 * @return          エラーコード 
    163163 */ 
    164164 
     
    196196 
    197197/*------------------------------------------------------------------------*/ 
    198 /** Žw’肳‚ꂽƒtƒ@ƒCƒ‹‚ðƒ\[ƒX‚ɍ\•¶‰ðÍ‚·‚é 
    199  * 
    200  * @param path      [in] “ü—̓tƒ@ƒCƒ‹‚̃pƒX 
    201  * @param streeP    [out]\•¶–Ø 
    202  * @param sizeP     [out]\•¶–؂̃TƒCƒY 
    203  * 
    204  * @return          ƒGƒ‰[ƒR[ƒh 
     198/** 指定されたファイルをソースに構文解析する 
     199 * 
     200 * @param path      [in] 入力ファイルのパス 
     201 * @param streeP    [out]構文木 
     202 * @param sizeP     [out]構文木のサイズ 
     203 * 
     204 * @return          エラーコード 
    205205 */ 
    206206 
     
    233233 
    234234/*------------------------------------------------------------------------*/ 
    235 /** •¶Žš—ñ‚ðƒ\[ƒX‚ɍ\•¶‰ðÍ‚·‚é 
    236  * 
    237  * @param s         [in] “ü—̓f[ƒ^ 
    238  * @param streeP    [out]\•¶–Ø 
    239  * @param sizeP     [out]\•¶–؂̃TƒCƒY 
    240  * 
    241  * @return          ƒGƒ‰[ƒR[ƒh 
     235/** 文字列をソースに構文解析する 
     236 * 
     237 * @param s         [in] 入力データ 
     238 * @param streeP    [out]構文木 
     239 * @param sizeP     [out]構文木のサイズ 
     240 * 
     241 * @return          エラーコード 
    242242 */ 
    243243 
     
    256256 
    257257/*------------------------------------------------------------------------*/ 
    258 /** \•¶‰ðÍ‚ÌŒãŽn–– 
    259  * 
    260  * @return          ‚È‚µ 
     258/** 構文解析の後始末 
     259 * 
     260 * @return          なし 
    261261 */ 
    262262 
     
    269269#pragma mark - 
    270270/*------------------------------------------------------------------------*/ 
    271 /** \•¶–؂̃m[ƒh‚ðˆóŽš‚·‚é 
    272  * 
    273  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    274  * @param r         [in] ƒm[ƒh 
    275  * 
    276  * @return          ‚È‚µ 
     271/** 構文木のノードを印字する 
     272 * 
     273 * @param f         [in] 出力ファイル 
     274 * @param r         [in] ノード 
     275 * 
     276 * @return          なし 
    277277 */ 
    278278 
     
    287287 
    288288/*------------------------------------------------------------------------*/ 
    289 /** \•¶ƒR[ƒh‚ðˆóŽš‚·‚é 
    290  * 
    291  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    292  * @param code      [in] \•¶ƒR[ƒh 
    293  * 
    294  * @return          ‚È‚µ 
     289/** 構文コードを印字する 
     290 * 
     291 * @param f         [in] 出力ファイル 
     292 * @param code      [in] 構文コード 
     293 * 
     294 * @return          なし 
    295295 */ 
    296296 
     
    403403 
    404404/*------------------------------------------------------------------------*/ 
    405 /** \•¶–Ø‚ðƒ_ƒ“ƒv‚·‚é 
    406  * 
    407  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    408  * @param stree     [in] \•¶–Ø 
    409  * @param size      [in] \•¶–؂̃TƒCƒY 
    410  * 
    411  * @return          ‚È‚µ 
     405/** 構文木をダンプする 
     406 * 
     407 * @param f         [in] 出力ファイル 
     408 * @param stree     [in] 構文木 
     409 * @param size      [in] 構文木のサイズ 
     410 * 
     411 * @return          なし 
    412412 */ 
    413413 
     
    446446#pragma mark - 
    447447/*------------------------------------------------------------------------*/ 
    448 /** ˆø”‚O‚̃m[ƒh‚ðì¬ 
    449  * 
    450  * @param code      [in] \•¶ƒR[ƒh 
    451  * 
    452  * @return          ƒm[ƒh 
     448/** 引数0のノードを作成 
     449 * 
     450 * @param code      [in] 構文コード 
     451 * 
     452 * @return          ノード 
    453453 */ 
    454454 
     
    460460 
    461461/*------------------------------------------------------------------------*/ 
    462 /** ˆø”‚P‚̃m[ƒh‚ðì¬ 
    463  * 
    464  * @param code      [in] \•¶ƒR[ƒh 
    465  * @param op1       [in] ˆø”‚P 
    466  * 
    467  * @return          ƒm[ƒh 
     462/** 引数1のノードを作成 
     463 * 
     464 * @param code      [in] 構文コード 
     465 * @param op1       [in] 引数1 
     466 * 
     467 * @return          ノード 
    468468 */ 
    469469 
     
    475475 
    476476/*------------------------------------------------------------------------*/ 
    477 /** ˆø”‚Q‚̃m[ƒh‚ðì¬ 
    478  * 
    479  * @param code      [in] \•¶ƒR[ƒh 
    480  * @param op1       [in] ˆø”‚P 
    481  * @param op2       [in] ˆø”‚Q 
    482  * 
    483  * @return          ƒm[ƒh 
     477/** 引数2のノードを作成 
     478 * 
     479 * @param code      [in] 構文コード 
     480 * @param op1       [in] 引数1 
     481 * @param op2       [in] 引数2 
     482 * 
     483 * @return          ノード 
    484484 */ 
    485485 
     
    507507 
    508508/*------------------------------------------------------------------------*/ 
    509 /** ˆø”‚P‚̃IƒyƒŒ[ƒ^ƒm[ƒh‚ðì¬ 
    510  * 
    511  * @param op        [in] ƒIƒyƒR[ƒh 
    512  * @param op1       [in] ˆø”‚P 
    513  * 
    514  * @return          ƒm[ƒh 
     509/** 引数1のオペレータノードを作成 
     510 * 
     511 * @param op        [in] オペコード 
     512 * @param op1       [in] 引数1 
     513 * 
     514 * @return          ノード 
    515515 */ 
    516516 
     
    535535 
    536536/*------------------------------------------------------------------------*/ 
    537 /** ˆø”‚Q‚̃IƒyƒŒ[ƒ^ƒm[ƒh‚ðì¬ 
    538  * 
    539  * @param op        [in] ƒIƒyƒR[ƒh 
    540  * @param op1       [in] ˆø”‚P 
    541  * @param op2       [in] ˆø”‚Q 
    542  * 
    543  * @return          ƒm[ƒh 
     537/** 引数2のオペレータノードを作成 
     538 * 
     539 * @param op        [in] オペコード 
     540 * @param op1       [in] 引数1 
     541 * @param op2       [in] 引数2 
     542 * 
     543 * @return          ノード 
    544544 */ 
    545545 
     
    628628 
    629629/*------------------------------------------------------------------------*/ 
    630 /** ƒƒbƒZ[ƒW‘—M‚̃Iƒyƒm[ƒh‚ðì¬ 
    631  * 
    632  * @param receiver  [in] ƒŒƒV[ƒo 
    633  * @param op        [in] ƒIƒyƒR[ƒh 
    634  * @param msg       [in] ƒƒbƒZ[ƒW 
    635  * @param args      [in] ƒƒbƒZ[ƒW‚̈ø” 
    636  * 
    637  * @return          ƒm[ƒh 
     630/** メッセージ送信のオペノードを作成 
     631 * 
     632 * @param receiver  [in] レシーバ 
     633 * @param op        [in] オペコード 
     634 * @param msg       [in] メッセージ 
     635 * @param args      [in] メッセージの引数 
     636 * 
     637 * @return          ノード 
    638638 */ 
    639639 
     
    651651 
    652652/*------------------------------------------------------------------------*/ 
    653 /** ƒƒbƒZ[ƒWÄ‘—M‚̃Iƒyƒm[ƒh‚ðì¬ 
    654  * 
    655  * @param op        [in] ƒIƒyƒR[ƒh 
    656  * @param msg       [in] ƒƒbƒZ[ƒW 
    657  * @param args      [in] ƒƒbƒZ[ƒW‚̈ø” 
    658  * 
    659  * @return          ƒm[ƒh 
     653/** メッセージ再送信のオペノードを作成 
     654 * 
     655 * @param op        [in] オペコード 
     656 * @param msg       [in] メッセージ 
     657 * @param args      [in] メッセージの引数 
     658 * 
     659 * @return          ノード 
    660660 */ 
    661661 
     
    669669 
    670670//-------------------------------------------------------------------------- 
    671 /** ðŒ•¶‚̃Iƒyƒm[ƒh‚ðì¬ 
    672  * 
    673  * @param cond      [in] ðŒŽ® 
    674  * @param ifthen    [in] THEN Ž® 
    675  * @param ifelse    [in] ELSE Ž® 
    676  * 
    677  * @return          ƒm[ƒh 
     671/** 条件文のオペノードを作成 
     672 * 
     673 * @param cond      [in] 条件式 
     674 * @param ifthen    [in] THEN  
     675 * @param ifelse    [in] ELSE  
     676 * 
     677 * @return          ノード 
    678678 */ 
    679679 
     
    698698 
    699699//-------------------------------------------------------------------------- 
    700 /** FOR •¶‚̃Iƒyƒm[ƒh‚ðì¬ 
    701  * 
    702  * @param index     [in] ƒCƒ“ƒfƒbƒNƒX•ϐ” 
    703  * @param v         [in] ‰Šú’l 
    704  * @param to        [in] I—¹’l 
    705  * @param by        [in] ƒXƒeƒbƒv’l 
    706  * @param expr      [in] ŒJ‚è•Ô‚µŽ® 
    707  * 
    708  * @return          ƒm[ƒh 
     700/** FOR 文のオペノードを作成 
     701 * 
     702 * @param index     [in] インデックス変数 
     703 * @param v         [in] 初期値 
     704 * @param to        [in] 終了値 
     705 * @param by        [in] ステップ値 
     706 * @param expr      [in] 繰り返し式 
     707 * 
     708 * @return          ノード 
    709709 */ 
    710710 
     
    725725 
    726726//-------------------------------------------------------------------------- 
    727 /** FOREACH •¶‚̃Iƒyƒm[ƒh‚ðì¬ 
    728  * 
    729  * @param index     [in] ƒCƒ“ƒfƒbƒNƒX•ϐ” 
    730  * @param val       [in] ’l‚ðŠi”[‚·‚é•ϐ” 
    731  * @param obj       [in] ƒ‹[ƒv‚̑ΏۂƂȂéƒIƒuƒWƒFƒNƒg 
    732  * @param deeply    [in] deeply ƒtƒ‰ƒO 
    733  * @param op        [in] ƒIƒyƒŒ[ƒVƒ‡ƒ“Ží•ʁiDO or COLLECTj 
    734  * @param expr      [in] ŒJ‚è•Ô‚µŽ® 
    735  * 
    736  * @return          ƒm[ƒh 
     727/** FOREACH 文のオペノードを作成 
     728 * 
     729 * @param index     [in] インデックス変数 
     730 * @param val       [in] 値を格納する変数 
     731 * @param obj       [in] ループの対象となるオブジェクト 
     732 * @param deeply    [in] deeply フラグ 
     733 * @param op        [in] オペレーション種別(DO or COLLECT) 
     734 * @param expr      [in] 繰り返し式 
     735 * 
     736 * @return          ノード 
    737737 */ 
    738738 
     
    754754 
    755755//-------------------------------------------------------------------------- 
    756 /** ƒOƒ[ƒoƒ‹ŠÖ”‚̃Iƒyƒm[ƒh‚ðì¬ 
    757  * 
    758  * @param name      [in] ŠÖ”–¼ 
    759  * @param args      [in] ŠÖ”‚̈ø” 
    760  * @param expr      [in] ŽÀsŽ® 
    761  * 
    762  * @return          ƒm[ƒh 
     756/** グローバル関数のオペノードを作成 
     757 * 
     758 * @param name      [in] 関数名 
     759 * @param args      [in] 関数の引数 
     760 * @param expr      [in] 実行式 
     761 * 
     762 * @return          ノード 
    763763 */ 
    764764 
     
    774774#pragma mark - 
    775775//-------------------------------------------------------------------------- 
    776 /** ŽQÆƒpƒXƒIƒuƒWƒFƒNƒg‚̍쐬 
    777  * 
    778  * @param sym1      [in] ƒVƒ“ƒ{ƒ‹‚P 
    779  * @param sym2      [in] ƒVƒ“ƒ{ƒ‹‚Q 
    780  * 
    781  * @return          ŽQÆƒpƒXƒIƒuƒWƒFƒNƒg 
     776/** 参照パスオブジェクトの作成 
     777 * 
     778 * @param sym1      [in] シンボル1 
     779 * @param sym2      [in] シンボル2 
     780 * 
     781 * @return          参照パスオブジェクト 
    782782 */ 
    783783 
     
    795795 
    796796//-------------------------------------------------------------------------- 
    797 /** ”z—ñƒIƒuƒWƒFƒNƒg‚̍쐬 
    798  * 
    799  * @param v         [in] ‰Šú’l 
    800  * 
    801  * @return          ”z—ñƒIƒuƒWƒFƒNƒg 
     797/** 配列オブジェクトの作成 
     798 * 
     799 * @param v         [in] 初期値 
     800 * 
     801 * @return          配列オブジェクト 
    802802 */ 
    803803 
     
    821821 
    822822//-------------------------------------------------------------------------- 
    823 /** ”z—ñƒIƒuƒWƒFƒNƒg‚̍Ōã‚ɃIƒuƒWƒFƒNƒg‚ð’ljÁ‚·‚é 
    824  * 
    825  * @param r         [in] ”z—ñƒIƒuƒWƒFƒNƒg 
    826  * @param v         [in] ’ljÁ‚·‚éƒIƒuƒWƒFƒNƒg 
    827  * 
    828  * @return          ”z—ñƒIƒuƒWƒFƒNƒg 
     823/** 配列オブジェクトの最後にオブジェクトを追加する 
     824 * 
     825 * @param r         [in] 配列オブジェクト 
     826 * @param v         [in] 追加するオブジェクト 
     827 * 
     828 * @return          配列オブジェクト 
    829829 */ 
    830830 
     
    837837 
    838838//-------------------------------------------------------------------------- 
    839 /** ”z—ñƒIƒuƒWƒFƒNƒg‚̃IƒuƒWƒFƒNƒg‚ð‘}“ü‚·‚é 
    840  * 
    841  * @param r         [in] ”z—ñƒIƒuƒWƒFƒNƒg 
    842  * @param p         [in] ‘}“ü‚·‚éˆÊ’u 
    843  * @param v         [in] ‘}“ü‚éƒIƒuƒWƒFƒNƒg 
    844  * 
    845  * @return          ”z—ñƒIƒuƒWƒFƒNƒg 
     839/** 配列オブジェクトのオブジェクトを挿入する 
     840 * 
     841 * @param r         [in] 配列オブジェクト 
     842 * @param p         [in] 挿入する位置 
     843 * @param v         [in] 挿入るオブジェクト 
     844 * 
     845 * @return          配列オブジェクト 
    846846 */ 
    847847 
     
    855855 
    856856//-------------------------------------------------------------------------- 
    857 /** ƒtƒŒ[ƒ€ƒ}ƒbƒvƒIƒuƒWƒFƒNƒg‚̍쐬 
    858  * 
    859  * @param v         [in] ‰Šú’l 
    860  * 
    861  * @return          ƒtƒŒ[ƒ€ƒ}ƒbƒvƒIƒuƒWƒFƒNƒg 
     857/** フレームマップオブジェクトの作成 
     858 * 
     859 * @param v         [in] 初期値 
     860 * 
     861 * @return          フレームマップオブジェクト 
    862862 */ 
    863863 
     
    881881 
    882882//-------------------------------------------------------------------------- 
    883 /** ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg‚̍쐬 
    884  * 
    885  * @param slot      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    886  * @param v         [in] ‰Šú’l 
    887  * 
    888  * @return          ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg 
     883/** フレームオブジェクトの作成 
     884 * 
     885 * @param slot      [in] スロットシンボル 
     886 * @param v         [in] 初期値 
     887 * 
     888 * @return          フレームオブジェクト 
    889889 */ 
    890890 
     
    909909 
    910910//-------------------------------------------------------------------------- 
    911 /** ƒtƒŒ[ƒ€‚̃Xƒƒbƒg‚ɃIƒuƒWƒFƒNƒg‚ðƒZƒbƒg‚·‚é 
    912  * 
    913  * @param r         [in] ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg 
    914  * @param slot      [in] ƒXƒƒbƒgƒVƒ“ƒ{ƒ‹ 
    915  * @param v         [in] ƒIƒuƒWƒFƒNƒg 
    916  * 
    917  * @return          ƒtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg 
     911/** フレームのスロットにオブジェクトをセットする 
     912 * 
     913 * @param r         [in] フレームオブジェクト 
     914 * @param slot      [in] スロットシンボル 
     915 * @param v         [in] オブジェクト 
     916 * 
     917 * @return          フレームオブジェクト 
    918918 */ 
    919919 
     
    926926 
    927927//-------------------------------------------------------------------------- 
    928 /** ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚̍쐬 
    929  * 
    930  * @param v         [in] ‰Šú’l 
    931  * 
    932  * @return          ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg 
     928/** バイナリオブジェクトの作成 
     929 * 
     930 * @param v         [in] 初期値 
     931 * 
     932 * @return          バイナリオブジェクト 
    933933 */ 
    934934 
     
    958958 
    959959//-------------------------------------------------------------------------- 
    960 /** ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚̍Ōã‚Ƀf[ƒ^‚ð’ljÁ 
    961  * 
    962  * @param r         [in] ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg 
    963  * @param v         [in] ’ljÁ‚·‚éƒf[ƒ^ 
    964  * 
    965  * @return          ƒoƒCƒiƒŠƒIƒuƒWƒFƒNƒg 
     960/** バイナリオブジェクトの最後にデータを追加 
     961 * 
     962 * @param r         [in] バイナリオブジェクト 
     963 * @param v         [in] 追加するデータ 
     964 * 
     965 * @return          バイナリオブジェクト 
    966966 */ 
    967967 
     
    980980#pragma mark - 
    981981//-------------------------------------------------------------------------- 
    982 /** ƒGƒ‰[ƒƒbƒZ[ƒW‚Ì•\ަ 
    983  * 
    984  * @param c         [in] ƒGƒ‰[Ží•Ê 
    985  * @param s         [in] ƒGƒ‰[ƒƒbƒZ[ƒW 
    986  * 
    987  * @return          ‚È‚µ 
     982/** エラーメッセージの表示 
     983 * 
     984 * @param c         [in] エラー種別 
     985 * @param s         [in] エラーメッセージ 
     986 * 
     987 * @return          なし 
    988988 */ 
    989989 
     
    10131013 
    10141014//-------------------------------------------------------------------------- 
    1015 /** \•¶ƒGƒ‰[ 
    1016  * 
    1017  * @param err       [in] ƒGƒ‰[ƒR[ƒh 
    1018  * 
    1019  * @return          ‚È‚µ 
     1015/** 構文エラー 
     1016 * 
     1017 * @param err       [in] エラーコード 
     1018 * 
     1019 * @return          なし 
    10201020 */ 
    10211021 
  • NEWT0/trunk/src/newt_core/NewtPrint.c

    r36 r68  
    22/** 
    33 * @file    NewtPrint.c 
    4  * @brief   ƒvƒŠƒ“ƒgŠÖŒW 
     4 * @brief   プリント関係 
    55 * 
    66 * @author  M.Nukui 
     
    1111 
    1212 
    13 /* ƒwƒbƒ_ƒtƒ@ƒCƒ‹ */ 
     13/* ヘッダファイル */ 
    1414#include <ctype.h> 
    1515 
     
    2121 
    2222 
    23 /* ŠÖ”ƒvƒƒgƒ^ƒCƒv */ 
     23/* 関数プロトタイプ */ 
    2424 
    2525static int32_t      NewtGetPrintLength(void); 
     
    5959#pragma mark - 
    6060/*------------------------------------------------------------------------*/ 
    61 /** ”z—ñ‚Ü‚½‚̓tƒŒ[ƒ€‚̃vƒŠƒ“ƒg‰Â”\‚È’·‚³‚ð•Ô‚· 
    62  * 
    63  * @return          ƒvƒŠƒ“ƒg‰Â”\‚È’·‚³ 
     61/** 配列またはフレームのプリント可能な長さを返す 
     62 * 
     63 * @return          プリント可能な長さ 
    6464 */ 
    6565 
     
    8282 
    8383/*------------------------------------------------------------------------*/ 
    84 /** ”z—ñ‚Ü‚½‚̓tƒŒ[ƒ€‚̃vƒŠƒ“ƒg‰Â”\‚Ȑ[‚³‚ð•Ô‚· 
    85  * 
    86  * @return          ƒvƒŠƒ“ƒg‰Â”\‚Ȑ[‚³ 
     84/** 配列またはフレームのプリント可能な深さを返す 
     85 * 
     86 * @return          プリント可能な深さ 
    8787 */ 
    8888 
     
    103103#pragma mark - 
    104104/*------------------------------------------------------------------------*/ 
    105 /** ƒVƒ“ƒ{ƒ‹•¶Žš—ñ‚ª•\ަ‰Â”\‚©’²‚ׂé 
    106  * 
    107  * @param str       [in] ƒVƒ“ƒ{ƒ‹•¶Žš—ñ 
    108  * @param len       [in] •¶Žš—ñ‚Ì’·‚³ 
    109  * 
    110  * @retval          true    •\ަ‰Â”\ 
    111  * @retval          false   •\ަ•s‰Â 
     105/** シンボル文字列が表示可能か調べる 
     106 * 
     107 * @param str       [in] シンボル文字列 
     108 * @param len       [in] 文字列の長さ 
     109 * 
     110 * @retval          true    表示可能 
     111 * @retval          false   表示不可 
    112112 */ 
    113113 
     
    142142 
    143143/*------------------------------------------------------------------------*/ 
    144 /** •¶Žš—ñ‚ª•\ަ‰Â”\‚©’²‚ׂé 
    145  * 
    146  * @param str       [in] •¶Žš—ñ 
    147  * @param len       [in] •¶Žš—ñ‚Ì’·‚³ 
    148  * 
    149  * @retval          true    •\ަ‰Â”\ 
    150  * @retval          false   •\ަ•s‰Â 
     144/** 文字列が表示可能か調べる 
     145 * 
     146 * @param str       [in] 文字列 
     147 * @param len       [in] 文字列の長さ 
     148 * 
     149 * @retval          true    表示可能 
     150 * @retval          false   表示不可 
    151151 */ 
    152152 
     
    169169 
    170170/*------------------------------------------------------------------------*/ 
    171 /** •¶Žš‚ðƒGƒXƒP[ƒv•¶Žš—ñ‚ɕϊ·‚·‚é 
    172  * 
    173  * @param c         [in] •¶Žš 
    174  * 
    175  * @return          ƒGƒXƒP[ƒv•¶Žš—ñ 
     171/** 文字をエスケープ文字列に変換する 
     172 * 
     173 * @param c         [in] 文字 
     174 * 
     175 * @return          エスケープ文字列 
    176176 */ 
    177177 
     
    204204 
    205205/*------------------------------------------------------------------------*/ 
    206 /** •¶Žš—ñ‚ðƒGƒXƒP[ƒv‚ŃvƒŠƒ“ƒg‚·‚é 
    207  * 
    208  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    209  * @param str       [in] •¶Žš—ñ 
    210  * @param len       [in] •¶Žš—ñ‚Ì’·‚³ 
    211  * 
    212  * @return          ‚È‚µ 
    213  * 
    214  * @note            newtStream_t ‚ðŽg—p 
     206/** 文字列をエスケープでプリントする 
     207 * 
     208 * @param f         [in] 出力ファイル 
     209 * @param str       [in] 文字列 
     210 * @param len       [in] 文字列の長さ 
     211 * 
     212 * @return          なし 
     213 * 
     214 * @note            newtStream_t を使用 
    215215 */ 
    216216 
     
    264264#pragma mark - 
    265265/*------------------------------------------------------------------------*/ 
    266 /** o—̓tƒ@ƒCƒ‹‚ɃIƒuƒWƒFƒNƒgŽQÆ‚ð‚P‚Ui”‚ŃvƒŠƒ“ƒg‚·‚é 
    267  * 
    268  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    269  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    270  * 
    271  * @return          ‚È‚µ 
    272  * 
    273  * @note            newtStream_t ‚ðŽg—p 
     266/** 出力ファイルにオブジェクト参照を16進数でプリントする 
     267 * 
     268 * @param f         [in] 出力ファイル 
     269 * @param r         [in] オブジェクト 
     270 * 
     271 * @return          なし 
     272 * 
     273 * @note            newtStream_t を使用 
    274274 */ 
    275275 
     
    281281 
    282282/*------------------------------------------------------------------------*/ 
    283 /** o—̓tƒ@ƒCƒ‹‚É“ÁŽêƒIƒuƒWƒFƒNƒg‚ðƒvƒŠƒ“ƒg‚·‚é 
    284  * 
    285  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    286  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    287  * 
    288  * @return          ‚È‚µ 
    289  * 
    290  * @note            newtStream_t ‚ðŽg—p 
     283/** 出力ファイルに特殊オブジェクトをプリントする 
     284 * 
     285 * @param f         [in] 出力ファイル 
     286 * @param r         [in] オブジェクト 
     287 * 
     288 * @return          なし 
     289 * 
     290 * @note            newtStream_t を使用 
    291291 */ 
    292292 
     
    301301 
    302302/*------------------------------------------------------------------------*/ 
    303 /** o—̓tƒ@ƒCƒ‹‚ɐ®”ƒIƒuƒWƒFƒNƒg‚ðƒvƒŠƒ“ƒg‚·‚é 
    304  * 
    305  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    306  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    307  * 
    308  * @return          ‚È‚µ 
    309  * 
    310  * @note            newtStream_t ‚ðŽg—p 
     303/** 出力ファイルに整数オブジェクトをプリントする 
     304 * 
     305 * @param f         [in] 出力ファイル 
     306 * @param r         [in] オブジェクト 
     307 * 
     308 * @return          なし 
     309 * 
     310 * @note            newtStream_t を使用 
    311311 */ 
    312312 
     
    321321 
    322322/*------------------------------------------------------------------------*/ 
    323 /** o—̓tƒ@ƒCƒ‹‚É•‚“®¬”“_ƒIƒuƒWƒFƒNƒg‚ðƒvƒŠƒ“ƒg‚·‚é 
    324  * 
    325  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    326  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    327  * 
    328  * @return          ‚È‚µ 
    329  * 
    330  * @note            newtStream_t ‚ðŽg—p 
     323/** 出力ファイルに浮動小数点オブジェクトをプリントする 
     324 * 
     325 * @param f         [in] 出力ファイル 
     326 * @param r         [in] オブジェクト 
     327 * 
     328 * @return          なし 
     329 * 
     330 * @note            newtStream_t を使用 
    331331 */ 
    332332 
     
    341341 
    342342/*------------------------------------------------------------------------*/ 
    343 /** o—̓tƒ@ƒCƒ‹‚É•¶ŽšƒIƒuƒWƒFƒNƒg‚ðƒvƒŠƒ“ƒg‚·‚é 
    344  * 
    345  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    346  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    347  * 
    348  * @return          ‚È‚µ 
    349  * 
    350  * @note            newtStream_t ‚ðŽg—p 
     343/** 出力ファイルに文字オブジェクトをプリントする 
     344 * 
     345 * @param f         [in] 出力ファイル 
     346 * @param r         [in] オブジェクト 
     347 * 
     348 * @return          なし 
     349 * 
     350 * @note            newtStream_t を使用 
    351351 */ 
    352352 
     
    376376 
    377377/*------------------------------------------------------------------------*/ 
    378 /** o—̓tƒ@ƒCƒ‹‚Ƀ}ƒWƒbƒNƒ|ƒCƒ“ƒ^‚ðƒvƒŠƒ“ƒg‚·‚é 
    379  * 
    380  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    381  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    382  * 
    383  * @return          ‚È‚µ 
    384  * 
    385  * @note            newtStream_t ‚ðŽg—p 
     378/** 出力ファイルにマジックポインタをプリントする 
     379 * 
     380 * @param f         [in] 出力ファイル 
     381 * @param r         [in] オブジェクト 
     382 * 
     383 * @return          なし 
     384 * 
     385 * @note            newtStream_t を使用 
    386386 */ 
    387387 
     
    399399 
    400400/*------------------------------------------------------------------------*/ 
    401 /** o—̓tƒ@ƒCƒ‹‚Ƀ}ƒWƒbƒNƒ|ƒCƒ“ƒ^‚ðƒvƒŠƒ“ƒg‚·‚é 
    402  * 
    403  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    404  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    405  * 
    406  * @return          ‚È‚µ 
    407  * 
    408  * @note            newtStream_t ‚ðŽg—p 
     401/** 出力ファイルにマジックポインタをプリントする 
     402 * 
     403 * @param f         [in] 出力ファイル 
     404 * @param r         [in] オブジェクト 
     405 * 
     406 * @return          なし 
     407 * 
     408 * @note            newtStream_t を使用 
    409409 */ 
    410410 
     
    423423 
    424424/*------------------------------------------------------------------------*/ 
    425 /** o—̓tƒ@ƒCƒ‹‚ɃoƒCƒiƒŠƒIƒuƒWƒFƒNƒg‚ðƒvƒŠƒ“ƒg‚·‚é 
    426  * 
    427  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    428  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    429  * 
    430  * @return          ‚È‚µ 
    431  * 
    432  * @note            newtStream_t ‚ðŽg—p 
     425/** 出力ファイルにバイナリオブジェクトをプリントする 
     426 * 
     427 * @param f         [in] 出力ファイル 
     428 * @param r         [in] オブジェクト 
     429 * 
     430 * @return          なし 
     431 * 
     432 * @note            newtStream_t を使用 
    433433 */ 
    434434 
     
    458458 
    459459/*------------------------------------------------------------------------*/ 
    460 /** o—̓tƒ@ƒCƒ‹‚ɃVƒ“ƒ{ƒ‹ƒIƒuƒWƒFƒNƒg‚ðƒvƒŠƒ“ƒg‚·‚é 
    461  * 
    462  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    463  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    464  * 
    465  * @return          ‚È‚µ 
    466  * 
    467  * @note            newtStream_t ‚ðŽg—p 
     460/** 出力ファイルにシンボルオブジェクトをプリントする 
     461 * 
     462 * @param f         [in] 出力ファイル 
     463 * @param r         [in] オブジェクト 
     464 * 
     465 * @return          なし 
     466 * 
     467 * @note            newtStream_t を使用 
    468468 */ 
    469469 
     
    490490 
    491491/*------------------------------------------------------------------------*/ 
    492 /** o—̓tƒ@ƒCƒ‹‚É•¶Žš—ñƒIƒuƒWƒFƒNƒg‚ðƒvƒŠƒ“ƒg‚·‚é 
    493  * 
    494  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    495  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    496  * 
    497  * @return          ‚È‚µ 
    498  * 
    499  * @note            newtStream_t ‚ðŽg—p 
     492/** 出力ファイルに文字列オブジェクトをプリントする 
     493 * 
     494 * @param f         [in] 出力ファイル 
     495 * @param r         [in] オブジェクト 
     496 * 
     497 * @return          なし 
     498 * 
     499 * @note            newtStream_t を使用 
    500500 */ 
    501501 
     
    525525 
    526526/*------------------------------------------------------------------------*/ 
    527 /** o—̓tƒ@ƒCƒ‹‚É”z—ñƒIƒuƒWƒFƒNƒg‚ðƒvƒŠƒ“ƒg‚·‚é 
    528  * 
    529  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    530  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    531  * @param depth     [in] [‚³ 
    532  * @param literal   [in] ƒŠƒeƒ‰ƒ‹ƒtƒ‰ƒO 
    533  * 
    534  * @return          ‚È‚µ 
    535  * 
    536  * @note            newtStream_t ‚ðŽg—p 
     527/** 出力ファイルに配列オブジェクトをプリントする 
     528 * 
     529 * @param f         [in] 出力ファイル 
     530 * @param r         [in] オブジェクト 
     531 * @param depth     [in] 深さ 
     532 * @param literal   [in] リテラルフラグ 
     533 * 
     534 * @return          なし 
     535 * 
     536 * @note            newtStream_t を使用 
    537537 */ 
    538538 
     
    603603 
    604604/*------------------------------------------------------------------------*/ 
    605 /** o—̓tƒ@ƒCƒ‹‚Ɋ֐”ƒIƒuƒWƒFƒNƒg‚ðƒvƒŠƒ“ƒg‚·‚é 
    606  * 
    607  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    608  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    609  * 
    610  * @return          ‚È‚µ 
    611  * 
    612  * @note            newtStream_t ‚ðŽg—p 
     605/** 出力ファイルに関数オブジェクトをプリントする 
     606 * 
     607 * @param f         [in] 出力ファイル 
     608 * @param r         [in] オブジェクト 
     609 * 
     610 * @return          なし 
     611 * 
     612 * @note            newtStream_t を使用 
    613613 */ 
    614614 
     
    630630 
    631631/*------------------------------------------------------------------------*/ 
    632 /** o—̓tƒ@ƒCƒ‹‚ɐ³‹K•\Œ»ƒIƒuƒWƒFƒNƒg‚ðƒvƒŠƒ“ƒg‚·‚é 
    633  * 
    634  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    635  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    636  * 
    637  * @return          ‚È‚µ 
    638  * 
    639  * @note            newtStream_t ‚ðŽg—p 
     632/** 出力ファイルに正規表現オブジェクトをプリントする 
     633 * 
     634 * @param f         [in] 出力ファイル 
     635 * @param r         [in] オブジェクト 
     636 * 
     637 * @return          なし 
     638 * 
     639 * @note            newtStream_t を使用 
    640640 */ 
    641641 
     
    659659 
    660660/*------------------------------------------------------------------------*/ 
    661 /** o—̓tƒ@ƒCƒ‹‚ɃtƒŒ[ƒ€ƒIƒuƒWƒFƒNƒg‚ðƒvƒŠƒ“ƒg‚·‚é 
    662  * 
    663  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    664  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    665  * @param depth     [in] [‚³ 
    666  * @param literal   [in] ƒŠƒeƒ‰ƒ‹ƒtƒ‰ƒO 
    667  * 
    668  * @return          ‚È‚µ 
    669  * 
    670  * @note            newtStream_t ‚ðŽg—p 
     661/** 出力ファイルにフレームオブジェクトをプリントする 
     662 * 
     663 * @param f         [in] 出力ファイル 
     664 * @param r         [in] オブジェクト 
     665 * @param depth     [in] 深さ 
     666 * @param literal   [in] リテラルフラグ 
     667 * 
     668 * @return          なし 
     669 * 
     670 * @note            newtStream_t を使用 
    671671 */ 
    672672 
     
    734734 
    735735/*------------------------------------------------------------------------*/ 
    736 /** o—̓tƒ@ƒCƒ‹‚ÉƒŠƒeƒ‰ƒ‹‚̈ó‚ðƒvƒŠƒ“ƒg‚·‚é 
    737  * 
    738  * @param f         [in] o—̓tƒ@ƒCƒ‹ 
    739  * @param r         [in] ƒIƒuƒWƒFƒNƒg 
    740  * @param literalP  [i/o]ƒŠƒeƒ‰ƒ‹ƒtƒ‰ƒO 
    741  * 
    742  * @return          ‚È‚µ 
    743  * 
    744  * @note            newtStream_t ‚ðŽg—p 
     736/** 出力ファイルにリテラルの印をプリントする 
     737 * 
     738 * @param f         [in] 出力ファイル 
     739 * @param r         [in] オブジェクト 
     740 * @param literalP  [i/o]リテラルフラグ 
     741 * 
     742 * @return          なし 
     743 * 
     744 * @note            newtStream_t を使用 
    745745 */ 
    746746