Changeset 68
- Timestamp:
- 11/23/06 15:52:57 (5 years ago)
- Location:
- NEWT0/trunk
- Files:
-
- 53 edited
-
contrib/contrib.xcodeproj/project.pbxproj (modified) (1 diff)
-
ext/ext.xcodeproj/project.pbxproj (modified) (1 diff)
-
ext/protoFILE/protoFILE.c (modified) (5 diffs)
-
ext/protoREGEX/protoREGEX.c (modified) (3 diffs)
-
src/main.c (modified) (24 diffs)
-
src/newt.xcodeproj/project.pbxproj (modified) (1 diff)
-
src/newt_core/NewtBC.c (modified) (103 diffs)
-
src/newt_core/NewtEnv.c (modified) (42 diffs)
-
src/newt_core/NewtFile.c (modified) (24 diffs)
-
src/newt_core/NewtFns.c (modified) (89 diffs)
-
src/newt_core/NewtGC.c (modified) (23 diffs)
-
src/newt_core/NewtIO.c (modified) (23 diffs)
-
src/newt_core/NewtIconv.c (modified) (4 diffs)
-
src/newt_core/NewtMem.c (modified) (12 diffs)
-
src/newt_core/NewtNSOF.c (modified) (37 diffs)
-
src/newt_core/NewtObj.c (modified) (150 diffs)
-
src/newt_core/NewtParser.c (modified) (36 diffs)
-
src/newt_core/NewtPrint.c (modified) (37 diffs)
-
src/newt_core/NewtStr.c (modified) (14 diffs)
-
src/newt_core/NewtVM.c (modified) (145 diffs)
-
src/newt_core/incs/NewtBC.h (modified) (3 diffs)
-
src/newt_core/incs/NewtConf.h (modified) (2 diffs)
-
src/newt_core/incs/NewtCore.h (modified) (2 diffs)
-
src/newt_core/incs/NewtEnv.h (modified) (6 diffs)
-
src/newt_core/incs/NewtErrs.h (modified) (7 diffs)
-
src/newt_core/incs/NewtFile.h (modified) (3 diffs)
-
src/newt_core/incs/NewtFns.h (modified) (4 diffs)
-
src/newt_core/incs/NewtGC.h (modified) (2 diffs)
-
src/newt_core/incs/NewtIO.h (modified) (4 diffs)
-
src/newt_core/incs/NewtIconv.h (modified) (3 diffs)
-
src/newt_core/incs/NewtLib.h (modified) (3 diffs)
-
src/newt_core/incs/NewtMem.h (modified) (2 diffs)
-
src/newt_core/incs/NewtNSOF.h (modified) (1 diff)
-
src/newt_core/incs/NewtObj.h (modified) (3 diffs)
-
src/newt_core/incs/NewtParser.h (modified) (5 diffs)
-
src/newt_core/incs/NewtPrint.h (modified) (2 diffs)
-
src/newt_core/incs/NewtStr.h (modified) (3 diffs)
-
src/newt_core/incs/NewtType.h (modified) (6 diffs)
-
src/newt_core/incs/NewtVM.h (modified) (2 diffs)
-
src/newt_core/incs/Newton/Newton.h (modified) (2 diffs)
-
src/newt_core/incs/Newton/NewtonExceptions.h (modified) (2 diffs)
-
src/newt_core/incs/Newton/NewtonMemory.h (modified) (2 diffs)
-
src/newt_core/incs/Newton/Objects.h (modified) (4 diffs)
-
src/newt_core/incs/darwin/config.h (modified) (2 diffs)
-
src/newt_core/incs/platform.h (modified) (2 diffs)
-
src/parser/lookup_words.c (modified) (5 diffs)
-
src/parser/lookup_words.h (modified) (2 diffs)
-
src/parser/newt.l (modified) (32 diffs)
-
src/parser/newt.y (modified) (22 diffs)
-
src/parser/yacc.h (modified) (2 diffs)
-
src/utils/endian_utils.c (modified) (3 diffs)
-
src/utils/endian_utils.h (modified) (4 diffs)
-
src/version.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
NEWT0/trunk/contrib/contrib.xcodeproj/project.pbxproj
r65 r68 96 96 DAE3D4630A42AE3A00FE1B1F /* objc-runtime-x.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = "objc-runtime-x.dylib"; sourceTree = BUILT_PRODUCTS_DIR; }; 97 97 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>"; }; 122 122 F5F69C0107E8F36E0086BCEA /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = "<group>"; }; 123 123 /* End PBXFileReference section */ -
NEWT0/trunk/ext/ext.xcodeproj/project.pbxproj
r65 r68 45 45 46 46 /* 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>"; }; 72 72 F5D8909F0A454544004C7582 /* protoREGEX.dylib */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.dylib"; includeInIndex = 0; path = protoREGEX.dylib; sourceTree = BUILT_PRODUCTS_DIR; }; 73 73 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>"; }; 75 75 F5F69C0107E8F36E0086BCEA /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = "<group>"; }; 76 76 /* End PBXFileReference section */ -
NEWT0/trunk/ext/protoFILE/protoFILE.c
r53 r68 2 2 /** 3 3 * @file protoFILE.c 4 * @brief g£Cu4 * @brief 拡張ライブラリ 5 5 * 6 6 * @author M.Nukui … … 11 11 12 12 13 /* wb_t@C*/13 /* ヘッダファイル */ 14 14 #include <stdio.h> 15 15 … … 22 22 23 23 24 #define NewtRefToFILE(r) ((FILE *)NewtRefToAddress(r)) ///< IuWFNgQÆðt@CQÆÉÏ·24 #define NewtRefToFILE(r) ((FILE *)NewtRefToAddress(r)) ///< オブジェクト参照をファイル参照に変換 25 25 26 26 27 27 /*------------------------------------------------------------------------*/ 28 /** t@CðI[v·é29 * 30 * @param rcvr [in] V[o31 * @param path [in] pX32 * @param mode [in] I[v[h33 * 34 * @return t@CQÆ28 /** ファイルをオープンする 29 * 30 * @param rcvr [in] レシーバ 31 * @param path [in] パス 32 * @param mode [in] オープンモード 33 * 34 * @return ファイル参照 35 35 */ 36 36 … … 55 55 56 56 /*------------------------------------------------------------------------*/ 57 /** t@CðN[Y·é58 * 59 * @param rcvr [in] V[o60 * @param stream [in] t@CQÆ61 * 62 * @return G[R[h57 /** ファイルをクローズする 58 * 59 * @param rcvr [in] レシーバ 60 * @param stream [in] ファイル参照 61 * 62 * @return エラーコード 63 63 */ 64 64 … … 448 448 449 449 /*------------------------------------------------------------------------*/ 450 /** g£CuÌCXg[451 * 452 * @return ȵ450 /** 拡張ライブラリのインストール 451 * 452 * @return なし 453 453 */ 454 454 -
NEWT0/trunk/ext/protoREGEX/protoREGEX.c
r1 r68 2 2 /** 3 3 * @file protoREGEX.c 4 * @brief g£Cu4 * @brief 拡張ライブラリ 5 5 * 6 6 * @author M.Nukui … … 11 11 12 12 13 /* wb_t@C*/13 /* ヘッダファイル */ 14 14 #include <stdio.h> 15 15 #include <sys/types.h> … … 205 205 206 206 /*------------------------------------------------------------------------*/ 207 /** g£CuÌCXg[207 /** 拡張ライブラリのインストール 208 208 * 209 * @return ȵ209 * @return なし 210 210 */ 211 211 -
NEWT0/trunk/src/main.c
r56 r68 2 2 /** 3 3 * @file main.c 4 * @brief CÖiCUI R}hj4 * @brief メイン関数(CUI コマンド) 5 5 * 6 6 * @author M.Nukui … … 11 11 12 12 13 /* wb_t@C*/13 /* ヘッダファイル */ 14 14 #include <stdio.h> 15 15 #include <stdlib.h> … … 26 26 27 27 28 /* è*/29 30 /// IvV28 /* 定数 */ 29 30 /// オプション 31 31 enum { 32 32 optNone = 0, … … 38 38 39 39 40 /* [JÏ*/41 42 /// IvVL[[hÌbNAbve[u40 /* ローカル変数 */ 41 42 /// オプションキーワードのルックアップテーブル 43 43 static keyword_t reserved_words[] = { 44 // At@xbgÉ\[gµÄ¨±Æ44 // アルファベット順にソートしておくこと 45 45 {"copyright", optCopyright}, 46 46 {"newton", optNos2}, … … 51 51 52 52 53 /// ìÆfBNg53 /// 作業ディレクトリ 54 54 static const char * newt_currdir; 55 55 56 56 57 /* Övg^Cv*/57 /* 関数プロトタイプ */ 58 58 #ifdef __cplusplus 59 59 extern "C" { … … 90 90 #pragma mark - 91 91 /*------------------------------------------------------------------------*/ 92 /** Êð\¦93 * 94 * @param r [in] IuWFNg95 * @param err [in] G[R[h96 * 97 * @return ȵ92 /** 結果を表示 93 * 94 * @param r [in] オブジェクト 95 * @param err [in] エラーコード 96 * 97 * @return なし 98 98 */ 99 99 … … 109 109 #pragma mark - 110 110 /*------------------------------------------------------------------------*/ 111 /** R}hCøÅwè³ê½ÖÌîñð\¦112 * 113 * @param argc [in] R}hCøÌ114 * @param argv [in] R}hCøÌzñ115 * @param n [in] R}hCøÌÊu116 * 117 * @return G[R[h111 /** コマンドライン引数で指定された関数の情報を表示 112 * 113 * @param argc [in] コマンドライン引数の数 114 * @param argv [in] コマンドライン引数の配列 115 * @param n [in] コマンドライン引数の位置 116 * 117 * @return エラーコード 118 118 */ 119 119 … … 135 135 } 136 136 else 137 { // øªÈ¢êÍÖêð\¦137 { //引数がない場合は関数一覧を表示 138 138 err = NVMInfo(NULL); 139 139 NewtErrMessage(err); … … 147 147 148 148 /*------------------------------------------------------------------------*/ 149 /** R}hCøÅwè³ê½¶ñðC^v^Às·é150 * 151 * @param argc [in] R}hCøÌ152 * @param argv [in] R}hCøÌzñ153 * @param n [in] R}hCøÌÊu154 * 155 * @return G[R[h149 /** コマンドライン引数で指定された文字列をインタプリタ実行する 150 * 151 * @param argc [in] コマンドライン引数の数 152 * @param argv [in] コマンドライン引数の配列 153 * @param n [in] コマンドライン引数の位置 154 * 155 * @return エラーコード 156 156 */ 157 157 … … 172 172 173 173 /*------------------------------------------------------------------------*/ 174 /** t@CðC^v^Às·é175 * 176 * @param argc [in] R}hCøÌ177 * @param argv [in] R}hCøÌzñ178 * @param n [in] R}hCøÌÊu179 * 180 * @return G[R[h174 /** ファイルをインタプリタ実行する 175 * 176 * @param argc [in] コマンドライン引数の数 177 * @param argv [in] コマンドライン引数の配列 178 * @param n [in] コマンドライン引数の位置 179 * 180 * @return エラーコード 181 181 */ 182 182 … … 205 205 #pragma mark - 206 206 /*------------------------------------------------------------------------*/ 207 /** ìÆfBNgðÏX*/207 /** 作業ディレクトリを変更 */ 208 208 void newt_chdir(void) 209 209 { … … 217 217 #pragma mark - 218 218 /*------------------------------------------------------------------------*/ 219 /** Rs[Cgð\¦*/219 /** コピーライトを表示 */ 220 220 void newt_show_copyright(void) 221 221 { … … 224 224 225 225 226 /** o[Wîñð\¦*/226 /** バージョン情報を表示 */ 227 227 void newt_show_version(void) 228 228 { … … 232 232 233 233 234 /** X^btîñð\¦*/234 /** スタッフ情報を表示 */ 235 235 void newt_show_staff(void) 236 236 { … … 240 240 241 241 242 /** gp@ð\¦*/242 /** 使用法を表示 */ 243 243 void newt_show_usage(void) 244 244 { … … 249 249 #pragma mark - 250 250 /*------------------------------------------------------------------------*/ 251 /** IvVG[ð\¦252 * 253 * @param c [in] IvV¶254 * 255 * @return ȵ251 /** オプションエラーを表示 252 * 253 * @param c [in] オプション文字 254 * 255 * @return なし 256 256 */ 257 257 … … 263 263 264 264 /*------------------------------------------------------------------------*/ 265 /** IvVXCb`ÌðÍ266 * 267 * @param s [in] IvVXCb`268 * 269 * @return ȵ265 /** オプションスイッチの解析 266 * 267 * @param s [in] オプションスイッチ 268 * 269 * @return なし 270 270 */ 271 271 … … 318 318 319 319 /*------------------------------------------------------------------------*/ 320 /** IvV¶ñÌðÍ321 * 322 * @param s [in] IvV¶ñ323 * 324 * @return ȵ320 /** オプション文字列の解析 321 * 322 * @param s [in] オプション文字列 323 * 324 * @return なし 325 325 */ 326 326 … … 333 333 switch (lookup_words(reserved_words, wlen, s)) 334 334 { 335 // NOS2 Rp`u335 // NOS2 コンパチブル 336 336 case optNos2: 337 337 NEWT_MODE_NOS2 = true; 338 338 break; 339 339 340 // Rs[Cg340 // コピーライト 341 341 case optCopyright: 342 342 newt_show_copyright(); … … 344 344 break; 345 345 346 // o[W346 // バージョン 347 347 case optVersion: 348 348 newt_show_version(); … … 350 350 break; 351 351 352 // X^bt[352 // スタッフロール 353 353 case optStaff: 354 354 newt_show_staff(); … … 360 360 361 361 /*------------------------------------------------------------------------*/ 362 /** IvVÌøððÍ·é363 * 364 * @param c [in] IvV¶365 * @param argc [in] R}hCøÌ366 * @param argv [in] R}hCøÌzñ367 * @param n [in] R}hCøÌÊu368 * 369 * @return G[R[h362 /** オプションの引数を解析する 363 * 364 * @param c [in] オプション文字 365 * @param argc [in] コマンドライン引数の数 366 * @param argv [in] コマンドライン引数の配列 367 * @param n [in] コマンドライン引数の位置 368 * 369 * @return エラーコード 370 370 */ 371 371 … … 392 392 #pragma mark - 393 393 /*------------------------------------------------------------------------*/ 394 /** main ÖiCUI R}h)395 * 396 * @brief NewtonScript C^v^397 * 398 * @param argc [in] R}hCøÌ399 * @param argv [in] R}hCøÌzñ400 * 401 * @return G[R[h394 /** main 関数(CUI コマンド) 395 * 396 * @brief NewtonScript インタプリタ 397 * 398 * @param argc [in] コマンドライン引数の数 399 * @param argv [in] コマンドライン引数の配列 400 * 401 * @return エラーコード 402 402 */ 403 403 … … 451 451 452 452 /*------------------------------------------------------------------------*/ 453 /** p[TG[454 * 455 * @param s [in] G[bZ[W¶ñ456 * 457 * @return ȵ453 /** パーサエラー 454 * 455 * @param s [in] エラーメッセージ文字列 456 * 457 * @return なし 458 458 */ 459 459 -
NEWT0/trunk/src/newt.xcodeproj/project.pbxproj
r66 r68 42 42 43 43 /* 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>"; }; 47 47 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>"; }; 93 93 F5F69C0107E8F36E0086BCEA /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = platform.h; sourceTree = "<group>"; }; 94 94 /* End PBXFileReference section */ -
NEWT0/trunk/src/newt_core/NewtBC.c
r56 r68 2 2 /** 3 3 * @file NewtBC.c 4 * @brief oCgR[h̶¬4 * @brief バイトコードの生成 5 5 * 6 6 * @author M.Nukui … … 11 11 12 12 13 /* wb_t@C*/13 /* ヘッダファイル */ 14 14 #include <stdio.h> 15 15 #include <stdlib.h> … … 22 22 23 23 24 /* ^é¾*/25 26 /// oCgR[h«24 /* 型宣言 */ 25 26 /// バイトコード環境 27 27 typedef struct nbc_env_t nbc_env_t; 28 28 29 /// oCgR[h«i\¢Ìè`j29 /// バイトコード環境(構造体定義) 30 30 struct nbc_env_t { 31 nbc_env_t * parent; ///< Äoµ³Â«32 33 newtStack bytecode; ///< oCgR[hobt@34 newtStack breakstack; ///< u[NX^bN35 newtStack onexcpstack; ///< áOX^bN36 37 newtRefVar func; ///< ÖIuWFNg38 newtRefVar literals; ///< ÖIuWFNgÌet[39 newtRefVar argFrame; ///< ÖIuWFNgÌ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; ///< 定数フレーム 41 41 }; 42 42 43 43 44 /// Ö½ße[u\¢Ì44 /// 関数命令テーブル構造体 45 45 typedef struct { 46 char * name; ///< Ö¼47 int32_t numArgs; ///< øÌ48 int16_t b; ///< oCgR[h49 newtRefVar sym; ///< V{46 char * name; ///< 関数名 47 int32_t numArgs; ///< 引数の数 48 int16_t b; ///< バイトコード 49 newtRefVar sym; ///< シンボル 50 50 } freq_func_t; 51 51 52 52 53 /* Övg^Cv */ 54 #define ENV_BC(env) ((uint8_t*)env->bytecode.stackp) ///< oCgR[h 55 #define ENV_CX(env) (env->bytecode.sp) ///< R[hCfbNXivOJE^j 56 #define BC ENV_BC(newt_bc_env) ///< ì¬ÌoCgR[h 57 #define CX ENV_CX(newt_bc_env) ///< ì¬ÌR[hCfbNXivOJE^j 58 #define BREAKSTACK ((uint32_t*)newt_bc_env->breakstack.stackp) ///< u[NX^bN 59 #define BREAKSP (newt_bc_env->breakstack.sp) ///< u[NX^bNÌX^bN|C^ 60 #define ONEXCPSTACK ((uint32_t*)newt_bc_env->onexcpstack.stackp) ///< áOX^bN 61 #define ONEXCPSP (newt_bc_env->onexcpstack.sp) ///< áOX^bNÌX^bN|C^ 62 #define LITERALS (newt_bc_env->literals) ///< ì¬ÖIuWFNgÌe 63 #define ARGFRAME (newt_bc_env->argFrame) ///< ì¬ÖIuWFNgÌøt[ 64 #define CONSTANT (newt_bc_env->constant) ///< èt[ 65 66 #define NBCAddLiteral(r) NBCAddLiteralEnv(newt_bc_env, r) ///< eXgÉIuWFNgðÇÁ 67 #define NBCGenCode(a, b) NBCGenCodeEnv(newt_bc_env, a, b) ///< oCgR[h𶬠68 #define NBCGenCodeL(a, r) NBCGenCodeEnvL(newt_bc_env, a, r) ///< eÈIyf[^ÌoCgR[h𶬠69 #define NBCGenPushLiteral(r) NBCGenPushLiteralEnv(newt_bc_env, r) ///< eðvbV 70 ·éoCgR[h𶬠71 72 #define NBCGenBC_op(stree, r) NBCGenBC_stmt(stree, r, true) ///< øÌoCgR[h𶬷é 73 #define NBCGenFreq(b) NBCGenCode(kNBCFreqFunc, b) ///< Ö½ßÌoCgR[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) ///< 関数命令のバイトコードを生成する 74 73 75 74 76 75 #pragma mark - 77 #pragma mark [JÏ78 /* [JÏ*/79 80 /// oChR[h«76 #pragma mark ローカル変数 77 /* ローカル変数 */ 78 79 /// バイドコード環境 81 80 static nbc_env_t * newt_bc_env; 82 81 83 /// Ö½ße[u82 /// 関数命令テーブル 84 83 static freq_func_t freq_func_tb[] = 85 84 { … … 102 101 103 102 #pragma mark - 104 /* Övg^Cv*/103 /* 関数プロトタイプ */ 105 104 static int16_t NBCAddLiteralEnv(nbc_env_t * env, newtRefArg r); 106 105 static void NBCGenCodeEnv(nbc_env_t * env, uint8_t a, int16_t b); … … 176 175 #pragma mark - 177 176 /*------------------------------------------------------------------------*/ 178 /** eXgÉIuWFNgðÇÁ·é179 * 180 * @param env [in] oCgR[h«181 * @param r [in] IuWFNg182 * 183 * @return ÇÁ³ê½Êu177 /** リテラルリストにオブジェクトを追加する 178 * 179 * @param env [in] バイトコード環境 180 * @param r [in] オブジェクト 181 * 182 * @return 追加された位置 184 183 */ 185 184 … … 196 195 197 196 /*------------------------------------------------------------------------*/ 198 /** oCgR[hð¶¬199 * 200 * @param env [in] oCgR[h«201 * @param a [in] ½ß202 * @param b [in] Iyf[^203 * 204 * @return ȵ197 /** バイトコードを生成 198 * 199 * @param env [in] バイトコード環境 200 * @param a [in] 命令 201 * @param b [in] オペデータ 202 * 203 * @return なし 205 204 */ 206 205 … … 238 237 239 238 /*------------------------------------------------------------------------*/ 240 /** eÈIyf[^ÌoCgR[hð¶¬241 * 242 * @param env [in] oCgR[h«243 * @param a [in] ½ß244 * @param r [in] IuWFNg245 * 246 * @return ȵ239 /** リテラルなオペデータのバイトコードを生成 240 * 241 * @param env [in] バイトコード環境 242 * @param a [in] 命令 243 * @param r [in] オブジェクト 244 * 245 * @return なし 247 246 */ 248 247 … … 254 253 obj = NewtPackLiteral(r); 255 254 256 // eðõ255 // リテラルを検索 257 256 b = NewtFindArrayIndex(env->literals, obj, 0); 258 257 259 if (b == -1) // eÉÇÁ258 if (b == -1) // リテラルに追加 260 259 b = NBCAddLiteralEnv(env, obj); 261 260 … … 265 264 266 265 /*------------------------------------------------------------------------*/ 267 /** eðvbV 268 ·éoCgR[h𶬠269 * 270 * @param env [in] oCgR[h« 271 * @param r [in] IuWFNg 272 * 273 * @return eXgÌÊu 266 /** リテラルをプッシュするバイトコードを生成 267 * 268 * @param env [in] バイトコード環境 269 * @param r [in] オブジェクト 270 * 271 * @return リテラルリストの位置 274 272 */ 275 273 … … 290 288 #pragma mark - 291 289 /*------------------------------------------------------------------------*/ 292 /** IuWFNgðvbV 293 ·éoCgR[h𶬠294 * 295 * @param r [in] IuWFNg 296 * 297 * @return ȵ 290 /** オブジェクトをプッシュするバイトコードを生成 291 * 292 * @param r [in] オブジェクト 293 * 294 * @return なし 298 295 */ 299 296 … … 339 336 340 337 /*------------------------------------------------------------------------*/ 341 /** Ïðæ¾·éoCgR[hð¶¬342 * 343 * @param stree [in] \¶Ø344 * @param r [in] ϼIuWFNg345 * 346 * @return ȵ338 /** 変数を取得するバイトコードを生成 339 * 340 * @param stree [in] 構文木 341 * @param r [in] 変数名オブジェクト 342 * 343 * @return なし 347 344 */ 348 345 … … 351 348 if (NewtHasSlot(CONSTANT, r)) 352 349 { 353 // èÌê350 // 定数の場合 354 351 newtRefVar c; 355 352 … … 365 362 int16_t b; 366 363 367 // [JÏðõ364 // ローカル変数を検索 368 365 b = NewtFindSlotIndex(ARGFRAME, r); 369 366 … … 377 374 378 375 /*------------------------------------------------------------------------*/ 379 /** ÖÄoµÌoCgR[hð¶¬380 * 381 * @param fn [in] ÖIuWFNg382 * @param numArgs [in] øÌ383 * 384 * @return ȵ376 /** 関数呼出しのバイトコードを生成 377 * 378 * @param fn [in] 関数オブジェクト 379 * @param numArgs [in] 引数の数 380 * 381 * @return なし 385 382 */ 386 383 … … 389 386 int i; 390 387 391 // freq-func Ìê388 // freq-func の場合 392 389 for (i = 0; freq_func_tb[i].name != NULL; i++) 393 390 { … … 412 409 413 410 /*------------------------------------------------------------------------*/ 414 /** ÖÌøt[ð쬷é415 * 416 * @param argFrame [in] øt[417 * @param stree [in] \¶Ø418 * @param r [in] \¶Øm[h419 * @param indefiniteP [out] sè·tO420 * 421 * @return øÌ411 /** 関数の引数フレームを作成する 412 * 413 * @param argFrame [in] 引数フレーム 414 * @param stree [in] 構文木 415 * @param r [in] 構文木ノード 416 * @param indefiniteP [out]不定長フラグ 417 * 418 * @return 引数の数 422 419 */ 423 420 … … 449 446 450 447 case kNPSArg: 451 // type (node->op1) ÍÆè ¦¸³448 // type (node->op1) はとりあえず無視 452 449 NcSetSlot(argFrame, node->op2, kNewtRefUnbind); 453 450 break; 454 451 455 452 case kNPSIndefinite: 456 // sè·453 // 不定長 457 454 NcSetSlot(argFrame, node->op1, kNewtRefUnbind); 458 455 *indefiniteP = true; … … 475 472 476 473 /*------------------------------------------------------------------------*/ 477 /** ÖIuWFNgÌøð쬷é478 * 479 * @param fn [in] ÖIuWFNg480 * @param stree [in] \¶Ø481 * @param r [in] \¶Øm[h482 * 483 * @return øÌ474 /** 関数オブジェクトの引数を作成する 475 * 476 * @param fn [in] 関数オブジェクト 477 * @param stree [in] 構文木 478 * @param r [in] 構文木ノード 479 * 480 * @return 引数の数 484 481 */ 485 482 … … 508 505 509 506 /*------------------------------------------------------------------------*/ 510 /** ÖÌoCgR[h«ð쬷é511 * 512 * @param stree [in] \¶Ø513 * @param args [in] ø514 * 515 * @return oCgR[h«507 /** 関数のバイトコード環境を作成する 508 * 509 * @param stree [in] 構文木 510 * @param args [in] 引数 511 * 512 * @return バイトコード環境 516 513 */ 517 514 … … 528 525 529 526 /*------------------------------------------------------------------------*/ 530 /** ªò½ßÌoCgR[hð¶¬531 * 532 * @param a [in] ½ß533 * 534 * @return oCgR[hÌÊu527 /** 分岐命令のバイトコードを生成 528 * 529 * @param a [in] 命令 530 * 531 * @return バイトコードの位置 535 532 */ 536 533 … … 548 545 #pragma mark - 549 546 /*------------------------------------------------------------------------*/ 550 /** [JÏðè`·éoCgR[hð¶¬551 * 552 * @param type [in] ÏÌ^553 * @param r [in] ϼV{554 * @param init [in] ú»555 * 556 * @return ȵ557 * 558 * @note ൠinit ª true ÈçÎú»·éoCgR[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 は完全に無視される 560 557 */ 561 558 … … 568 565 int16_t b; 569 566 570 // [JÏðõ567 // ローカル変数を検索 571 568 b = NewtFindSlotIndex(ARGFRAME, r); 572 569 … … 581 578 #pragma mark - 582 579 /*------------------------------------------------------------------------*/ 583 /** oCgR[hðobNpb`·é584 * 585 * @param cx [in] obNpb`·éÊu586 * @param b [in] obNpb`·éIyf[^587 * 588 * @return ȵ589 * 590 * @@note ªò½ßâ[v½ßÈÇ·®ÉIyf[^ªèµÈ¢êÉg¤580 /** バイトコードをバックパッチする 581 * 582 * @param cx [in] バックパッチする位置 583 * @param b [in] バックパッチするオペデータ 584 * 585 * @return なし 586 * 587 * @note 分岐命令やループ命令などすぐにオペデータが決定しない場合に使う 591 588 */ 592 589 … … 599 596 600 597 /*------------------------------------------------------------------------*/ 601 /** u[N½ßÌÊuðX^bN·é602 * 603 * @param cx [in] u[N½ßÌÊu604 * 605 * @return ȵ606 * 607 * @@note obNpb`̽ßÉo¦Ä¨598 /** ブレーク命令の位置をスタックする 599 * 600 * @param cx [in] ブレーク命令の位置 601 * 602 * @return なし 603 * 604 * @note バックパッチのために覚えておく 608 605 */ 609 606 … … 622 619 623 620 /*------------------------------------------------------------------------*/ 624 /** [vàÌu[N½ßðobNpb`·é625 * 626 * @param loop_head [in] [vÌJnÊu627 * @param cx [in] [vÌIíèÊu628 * 629 * @return ȵ621 /** ループ内のブレーク命令をバックパッチする 622 * 623 * @param loop_head [in] ループの開始位置 624 * @param cx [in] ループの終わり位置 625 * 626 * @return なし 630 627 */ 631 628 … … 641 638 break; 642 639 643 NBCBackPatch(branch, cx); // u`ðobNpb`640 NBCBackPatch(branch, cx); // ブランチをバックパッチ 644 641 } 645 642 } … … 648 645 #pragma mark - 649 646 /*------------------------------------------------------------------------*/ 650 /** áO½ßÌÊuðX^bN·é651 * 652 * @param cx [in] áO½ßÌÊu653 * 654 * @return ȵ655 * 656 * @@note obNpb`̽ßÉo¦Ä¨647 /** 例外処理命令の位置をスタックする 648 * 649 * @param cx [in] 例外処理命令の位置 650 * 651 * @return なし 652 * 653 * @note バックパッチのために覚えておく 657 654 */ 658 655 … … 671 668 672 669 /*------------------------------------------------------------------------*/ 673 /** TRY ¶àÌu[N½ßðobNpb`·é674 * 675 * @param try_head [in] TRY ¶ÌJnÊu676 * @param cx [in] TRY ¶ÌIíèÊu677 * 678 * @return ȵ670 /** TRY文内のブレーク命令をバックパッチする 671 * 672 * @param try_head [in] TRY文の開始位置 673 * @param cx [in] TRY文の終わり位置 674 * 675 * @return なし 679 676 */ 680 677 … … 690 687 break; 691 688 692 NBCBackPatch(branch, cx); // u`ðobNpb`693 } 694 } 695 696 697 /*------------------------------------------------------------------------*/ 698 /** áO½ßÌoCgR[h𶬷é699 * 700 * @param pc [in] áO½ßÌvOJE^701 * 702 * @return ȵ689 NBCBackPatch(branch, cx); // ブランチをバックパッチ 690 } 691 } 692 693 694 /*------------------------------------------------------------------------*/ 695 /** 例外処理命令のバイトコードを生成する 696 * 697 * @param pc [in] 例外処理命令のプログラムカウンタ 698 * 699 * @return なし 703 700 */ 704 701 … … 711 708 b = NBCGenPushLiteral(r); 712 709 713 NBCPushOnexcpStack(b); // obNpb`̽ßÉX^bNÉvbV 714 ·é 715 } 716 717 718 /*------------------------------------------------------------------------*/ 719 /** áOàÌu[N½ßÌoCgR[h𶬷é 720 * 721 * @return ȵ 710 NBCPushOnexcpStack(b); // バックパッチのためにスタックにプッシュする 711 } 712 713 714 /*------------------------------------------------------------------------*/ 715 /** 例外処理内のブレーク命令のバイトコードを生成する 716 * 717 * @return なし 722 718 */ 723 719 … … 726 722 uint32_t cx; 727 723 728 cx = NBCGenBranch(kNBCBranch); // u` 729 NBCPushOnexcpStack(cx); // obNpb`̽ßÉX^bNÉvbV 730 ·é 731 } 732 733 734 /*------------------------------------------------------------------------*/ 735 /** obNpb`ÉáOV{ðeXgÉo^·é 736 * 737 * @param sp [in] áO½ßX^bNÌX^bN|C^ 738 * @param pc [in] áO½ßÌvOJE^ 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 なし 741 736 */ 742 737 … … 755 750 #pragma mark - 756 751 /*------------------------------------------------------------------------*/ 757 /** ÖIuWFNgð쬷é758 * 759 * @param env [in] oCgR[h«760 * 761 * @return ÖIuWFNg752 /** 関数オブジェクトを作成する 753 * 754 * @param env [in] バイトコード環境 755 * 756 * @return 関数オブジェクト 762 757 */ 763 758 … … 800 795 // constant 801 796 if (env->parent) 802 { // eª êÎèt[ð¤L·é797 { // 親があれば定数フレームを共有する 803 798 env->constant = env->parent->constant; 804 799 } 805 800 else 806 { // eªÈ¯êÎVKÉèt[ðì¬801 { // 親がなければ新規に定数フレームを作成 807 802 env->constant = NcMakeFrame(); 808 803 } … … 813 808 814 809 /*------------------------------------------------------------------------*/ 815 /** Ö½ße[uðú»·é816 * 817 * @return ȵ810 /** 関数命令テーブルを初期化する 811 * 812 * @return なし 818 813 */ 819 814 … … 830 825 831 826 /*------------------------------------------------------------------------*/ 832 /** oCgR[h«ð쬷é833 * 834 * @param parent [in] Äoµ³ÌoCgR[h«835 * 836 * @return oCgR[h«827 /** バイトコード環境を作成する 828 * 829 * @param parent [in] 呼出し元のバイトコード環境 830 * 831 * @return バイトコード環境 837 832 */ 838 833 … … 856 851 857 852 /*------------------------------------------------------------------------*/ 858 /** oCgR[h«ððú·é859 * 860 * @param env [in] oCgR[h«861 * 862 * @return ȵ853 /** バイトコード環境を解放する 854 * 855 * @param env [in] バイトコード環境 856 * 857 * @return なし 863 858 */ 864 859 … … 877 872 878 873 /*------------------------------------------------------------------------*/ 879 /** ÖIuWFNg̶¬ðI¹·é880 * 881 * @param envP [in] oCgR[h«ÖÌ|C^882 * 883 * @return ÖIuWFNg874 /** 関数オブジェクトの生成を終了する 875 * 876 * @param envP [in] バイトコード環境へのポインタ 877 * 878 * @return 関数オブジェクト 884 879 */ 885 880 … … 914 909 915 910 /*------------------------------------------------------------------------*/ 916 /** oCgR[h¶¬Ì½ßÌú»917 * 918 * @return ȵ911 /** バイトコード生成のための初期化 912 * 913 * @return なし 919 914 */ 920 915 … … 926 921 927 922 /*------------------------------------------------------------------------*/ 928 /** oCgR[h¶¬Ìãn929 * 930 * @return ȵ923 /** バイトコード生成の後始末 924 * 925 * @return なし 931 926 */ 932 927 … … 946 941 #pragma mark - 947 942 /*------------------------------------------------------------------------*/ 948 /** ¶ÌoCgR[h𶬷é949 * 950 * @param stree [in] \¶Ø951 * @param r [in] \¶Øm[h952 * @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 なし 955 950 */ 956 951 … … 969 964 970 965 /*------------------------------------------------------------------------*/ 971 /** èÌoCgR[h𶬷é972 * 973 * @param stree [in] \¶Ø974 * @param r [in] \¶Øm[h975 * 976 * @return ȵ966 /** 定数のバイトコードを生成する 967 * 968 * @param stree [in] 構文木 969 * @param r [in] 構文木ノード 970 * 971 * @return なし 977 972 */ 978 973 … … 993 988 994 989 case kNPSAsign: 995 // node->op2 ªIuWFNgÅÈ¢êÌðs¤±Æ990 // node->op2 がオブジェクトでない場合の処理を行うこと 996 991 NcSetSlot(CONSTANT, node->op1, node->op2); 997 992 break; … … 1006 1001 1007 1002 /*------------------------------------------------------------------------*/ 1008 /** O[oÏÌoCgR[h𶬷é1009 * 1010 * @param stree [in] \¶Ø1011 * @param r [in] \¶Øm[h1012 * 1013 * @return ȵ1003 /** グローバル変数のバイトコードを生成する 1004 * 1005 * @param stree [in] 構文木 1006 * @param r [in] 構文木ノード 1007 * 1008 * @return なし 1014 1009 */ 1015 1010 … … 1033 1028 NBCGenBC_op(stree, node->op2); 1034 1029 1035 // defGlobalVar ðÄo·1030 // defGlobalVar を呼出す 1036 1031 NBCGenCallFn(NSSYM0(defGlobalVar), 2); 1037 1032 break; … … 1043 1038 NBCGenPUSH(kNewtRefUnbind); 1044 1039 1045 // defGlobalVar ðÄo·1040 // defGlobalVar を呼出す 1046 1041 NBCGenCallFn(NSSYM0(defGlobalVar), 2); 1047 1042 } … … 1054 1049 1055 1050 /*------------------------------------------------------------------------*/ 1056 /** [JÏÌoCgR[h𶬷é1057 * 1058 * @param stree [in] \¶Ø1059 * @param type [in] ^1060 * @param r [in] \¶Øm[h1061 * 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 は完全に無視される 1065 1060 */ 1066 1061 … … 1098 1093 1099 1094 /*------------------------------------------------------------------------*/ 1100 /** ^ª³µ¢©`FbN·é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 正しくない型 1106 1101 */ 1107 1102 … … 1124 1119 1125 1120 /*------------------------------------------------------------------------*/ 1126 /** TRY ¶ÌæªÌoCgR[h𶬷é1127 * 1128 * @param stree [in] \¶Ø1129 * @param r [in] \¶Øm[h1130 * 1131 * @return áOÌ1121 /** TRY文の先頭のバイトコードを生成する 1122 * 1123 * @param stree [in] 構文木 1124 * @param r [in] 構文木ノード 1125 * 1126 * @return 例外処理の数 1132 1127 */ 1133 1128 … … 1145 1140 { 1146 1141 case kNPSOnexception: 1147 NBCGenPUSH(node->op1); // V{1148 NBCGenOnexcpPC(-1); // PC i_~[j1142 NBCGenPUSH(node->op1); // シンボル 1143 NBCGenOnexcpPC(-1); // PC(ダミー) 1149 1144 1150 1145 numExcps = 1; … … 1163 1158 1164 1159 /*------------------------------------------------------------------------*/ 1165 /** TRY ¶ÌIíèÌoCgR[h𶬷é1166 * 1167 * @param stree [in] \¶Ø1168 * @param r [in] \¶Øm[h1169 * @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 例外処理の数 1172 1167 */ 1173 1168 … … 1186 1181 { 1187 1182 case kNPSOnexception: 1188 // new-handler ÌøðobNpb`1183 // new-handler の引数をバックパッチ 1189 1184 NBCOnexcpBackPatchL(*onexcpspP, CX); 1190 1185 (*onexcpspP)++; 1191 1186 1192 // onexception ÌR[h¶¬1187 // onexception のコード生成 1193 1188 NBCGenBC_stmt(stree, node->op2, true); 1194 1189 NBCGenOnexcpBranch(); … … 1209 1204 1210 1205 /*------------------------------------------------------------------------*/ 1211 /** TRY ¶ÌoCgR[h𶬷é1212 * 1213 * @param stree [in] \¶Ø1214 * @param expr [in] ®Ì\¶Øm[h1215 * @param onexception_list [in] áOÌ\¶Øm[h1216 * 1217 * @return ȵ1206 /** TRY文のバイトコードを生成する 1207 * 1208 * @param stree [in] 構文木 1209 * @param expr [in] 式の構文木ノード 1210 * @param onexception_list [in] 例外処理の構文木ノード 1211 * 1212 * @return なし 1218 1213 */ 1219 1214 … … 1230 1225 NBCGenCode(kNBCNewHandlers, numExcps); 1231 1226 1232 // Às¶1227 // 実行文 1233 1228 NBCGenBC_op(stree, expr); 1234 1229 NBCGenCode(kNBCPopHandlers, 0); … … 1241 1236 NBCGenTryPost(stree, onexception_list, &onexcpsp); 1242 1237 1243 // onexception ÌI¹1244 NBCOnexcpBackPatchs(onexcp_cx, CX); // onexception ÌI¹ðobNpb`1238 // onexception の終了 1239 NBCOnexcpBackPatchs(onexcp_cx, CX); // onexception の終了をバックパッチ 1245 1240 NBCGenCode(kNBCPopHandlers, 0); 1246 1241 1247 // ONEXCPSP ðß·1242 // ONEXCPSP を戻す 1248 1243 ONEXCPSP = onexcpsp; 1249 1244 1250 // obNpb`1251 NBCBackPatch(branch_cx, CX); // branch ðobNpb`1252 } 1253 1254 1255 /*------------------------------------------------------------------------*/ 1256 /** IF ¶ÌoCgR[h𶬷é1257 * 1258 * @param stree [in] \¶Ø1259 * @param cond [in] ð®Ì\¶Øm[h1260 * @param thenelse [in] THEN, ELSE Ì\¶Øm[h1261 * @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 なし 1264 1259 */ 1265 1260 … … 1284 1279 } 1285 1280 1286 // THEN ¶1281 // THEN 文 1287 1282 NBCGenBC_stmt(stree, ifthen, ret); 1288 1283 1289 1284 if (ifelse == kNewtRefUnbind) 1290 1285 { 1291 NBCBackPatch(cond_cx, CX); // ð¶ðobNpb`1286 NBCBackPatch(cond_cx, CX); // 条件文をバックパッチ 1292 1287 } 1293 1288 else … … 1295 1290 uint32_t then_done; 1296 1291 1297 then_done = NBCGenBranch(kNBCBranch); // THEN ¶ÌI¹1298 NBCBackPatch(cond_cx, CX); // ð¶ðobNpb`1299 1300 // ELSE ¶1292 then_done = NBCGenBranch(kNBCBranch); // THEN 文の終了 1293 NBCBackPatch(cond_cx, CX); // 条件文をバックパッチ 1294 1295 // ELSE 文 1301 1296 NBCGenBC_stmt(stree, ifelse, ret); 1302 1297 1303 NBCBackPatch(then_done, CX); // THEN ¶I¹Ìu`ðobNpb`1304 } 1305 } 1306 1307 1308 /*------------------------------------------------------------------------*/ 1309 /** _AND ÌoCgR[h𶬷é1310 * 1311 * @param stree [in] \¶Ø1312 * @param op1 [in] IyhPÌ\¶Øm[h1313 * @param op2 [in] IyhQÌ\¶Øm[h1314 * 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 なし 1316 1311 */ 1317 1312 … … 1321 1316 uint32_t cx2; 1322 1317 1323 // IyhP1318 // オペランド1 1324 1319 NBCGenBC_op(stree, op1); 1325 1320 1326 // NIL Èçªò1321 // NIL なら分岐 1327 1322 cx1 = NBCGenBranch(kNBCBranchIfFalse); 1328 1323 1329 // IyhQ1324 // オペランド2 1330 1325 NBCGenBC_op(stree, op2); 1331 // ®ÌÅãÖªò1326 // 式の最後へ分岐 1332 1327 cx2 = NBCGenBranch(kNBCBranch); 1333 1328 1334 // ßèlðvbV 1335 1336 NBCBackPatch(cx1, CX); // ªòðobNpb` 1337 NBCGenPUSH(kNewtRefNIL); // ßèlÍ NIL 1338 1339 // ®ÌÅã 1340 NBCBackPatch(cx2, CX); // ªòðobNpb` 1341 } 1342 1343 1344 /*------------------------------------------------------------------------*/ 1345 /** _OR ÌoCgR[h𶬷é 1346 * 1347 * @param stree [in] \¶Ø 1348 * @param op1 [in] IyhPÌ\¶Øm[h 1349 * @param op2 [in] IyhQÌ\¶Ø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 なし 1352 1346 */ 1353 1347 … … 1357 1351 uint32_t cx2; 1358 1352 1359 // IyhP1353 // オペランド1 1360 1354 NBCGenBC_op(stree, op1); 1361 1355 1362 // TRUE Èçªò1356 // TRUE なら分岐 1363 1357 cx1 = NBCGenBranch(kNBCBranchIfTrue); 1364 1358 1365 // IyhQ1359 // オペランド2 1366 1360 NBCGenBC_op(stree, op2); 1367 // ®ÌÅãÖªò1361 // 式の最後へ分岐 1368 1362 cx2 = NBCGenBranch(kNBCBranch); 1369 1363 1370 // ßèlðvbV 1371 1372 NBCBackPatch(cx1, CX); // ªòðobNpb` 1364 // 戻り値をプッシュ 1365 NBCBackPatch(cx1, CX); // 分岐をバックパッチ 1373 1366 1374 1367 if (NPSRefIsSyntaxNode(op1)) … … 1377 1370 NBCGenPUSH(op1); 1378 1371 1379 // ®ÌÅã1380 NBCBackPatch(cx2, CX); // ªòðobNpb`1381 } 1382 1383 1384 /*------------------------------------------------------------------------*/ 1385 /** LOOP ¶ÌoCgR[h𶬷é1386 * 1387 * @param stree [in] \¶Ø1388 * @param expr [in] Às¶Ì\¶Øm[h1389 * 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 なし 1391 1384 */ 1392 1385 … … 1395 1388 uint32_t loop_head; 1396 1389 1397 // loop Ìæª1390 // loop の先頭 1398 1391 loop_head = CX; 1399 1392 1400 // Às¶1393 // 実行文 1401 1394 NBCGenBC_stmt(stree, expr, false); 1402 1395 1403 NBCGenCode(kNBCBranch, loop_head); // loop ÌæªÖ 1404 1405 // obNpb` 1406 NBCBreakBackPatchs(loop_head, CX); // break ðobNpb` 1407 } 1408 1409 1410 /*------------------------------------------------------------------------*/ 1411 /** Ce[^Ågp·éêIÈV{ð쬷é 1412 * 1413 * @param index [in] CfbNXÏ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 シンボル 1419 1411 */ 1420 1412 … … 1435 1427 1436 1428 /*------------------------------------------------------------------------*/ 1437 /** FOR ¶ÌoCgR[h𶬷é1438 * 1439 * @param stree [in] \¶Ø1440 * @param r [in] \¶Øm[h1441 * @param expr [in] Às¶Ì\¶Øm[h1442 * 1443 * @return ȵ1429 /** FOR文のバイトコードを生成する 1430 * 1431 * @param stree [in] 構文木 1432 * @param r [in] 構文木ノード 1433 * @param expr [in] 実行文の構文木ノード 1434 * 1435 * @return なし 1444 1436 */ 1445 1437 … … 1463 1455 by = NSINT(1); 1464 1456 1465 // index ðú»1457 // index を初期化 1466 1458 NBCGenBC_op(stree, v); 1467 1459 NBCDefLocal(NS_INT, index, true); 1468 1460 1469 // index|limit ðú»1461 // index|limit を初期化 1470 1462 _limit = NBCMakeTempSymbol(index, kNewtRefUnbind, "limit"); 1471 1463 NBCGenBC_op(stree, to); 1472 1464 NBCDefLocal(NS_INT, _limit, true); 1473 1465 1474 // index|limit ðú»1466 // index|limit を初期化 1475 1467 _incr = NBCMakeTempSymbol(index, kNewtRefUnbind, "incr"); 1476 1468 NBCGenBC_op(stree, by); 1477 1469 NBCDefLocal(NS_INT, _incr, true); 1478 1470 1479 // ð¶Öu`1471 // 条件文へブランチ 1480 1472 NBCGenGetVar(stree, _incr); 1481 1473 NBCGenGetVar(stree, index); … … 1483 1475 branch_cx = NBCGenBranch(kNBCBranch); 1484 1476 1485 // loop Ìæª1477 // loop の先頭 1486 1478 loop_head = CX; 1487 1479 1488 // Às¶1480 // 実行文 1489 1481 NBCGenBC_stmt(stree, expr, false); 1490 1482 1491 // ÏÉ by ðª1483 // 変数に by を増分 1492 1484 { 1493 1485 int16_t b; … … 1499 1491 } 1500 1492 1501 // ð¶1502 NBCBackPatch(branch_cx, CX); // branch ðobNpb`1493 // 条件文 1494 NBCBackPatch(branch_cx, CX); // branch をバックパッチ 1503 1495 NBCGenGetVar(stree, _limit); 1504 NBCGenCode(kNBCBranchIfLoopNotDone, loop_head); // loop ÌæªÖ1505 1506 // ßèl1496 NBCGenCode(kNBCBranchIfLoopNotDone, loop_head); // loop の先頭へ 1497 1498 // 戻り値 1507 1499 NBCGenPUSH(kNewtRefNIL); 1508 1500 1509 // obNpb`1510 NBCBreakBackPatchs(loop_head, CX); // break ðobNpb`1511 } 1512 1513 1514 /*------------------------------------------------------------------------*/ 1515 /** FOREACH ¶ÌoCgR[h𶬷é1516 * 1517 * @param stree [in] \¶Ø1518 * @param r [in] \¶Øm[h1519 * @param expr [in] Às¶Ì\¶Øm[h1520 * 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 なし 1522 1514 */ 1523 1515 … … 1565 1557 NBCDefLocal(NSSYM0(array), _result, false); 1566 1558 1567 // ßèlÌ array ðì¬1559 // 戻り値の array を作成 1568 1560 if (NewtRefIsNIL(deeply)) 1569 1561 lenIndex = kIterMax; … … 1580 1572 NBCDefLocal(NSSYM0(array), _result, true); 1581 1573 1582 // index Ìú»1574 // index の初期化 1583 1575 NBCGenPUSH(NSINT(0)); 1584 1576 NBCDefLocal(NS_INT, _index, true); 1585 1577 } 1586 1578 1587 // ð¶Öu`1579 // 条件文へブランチ 1588 1580 branch_cx = NBCGenBranch(kNBCBranch); 1589 1581 1590 // loop Ìæª1582 // loop の先頭 1591 1583 loop_head = CX; 1592 1584 1593 // val ÌZbg1585 // val のセット 1594 1586 NBCGenGetVar(stree, _iter); 1595 1587 NBCGenPUSH(NewtMakeInteger(kIterValue)); … … 1597 1589 NBCDefLocal(kNewtRefUnbind, val, true); 1598 1590 1599 // index ÌZbg1591 // index のセット 1600 1592 if (index != kNewtRefUnbind) 1601 1593 { … … 1606 1598 } 1607 1599 1608 // Às¶1600 // 実行文 1609 1601 if (collect) 1610 1602 { … … 1635 1627 NBCGenCode(kNBCIterNext, 0); 1636 1628 1637 // ð¶1638 NBCBackPatch(branch_cx, CX); // branch ðobNpb`1629 // 条件文 1630 NBCBackPatch(branch_cx, CX); // branch をバックパッチ 1639 1631 NBCGenGetVar(stree, _iter); 1640 1632 NBCGenCode(kNBCIterDone, 0); // iter-done 1641 NBCGenCode(kNBCBranchIfFalse, loop_head); // loop ÌæªÖ1642 1643 // ßèl1633 NBCGenCode(kNBCBranchIfFalse, loop_head); // loop の先頭へ 1634 1635 // 戻り値 1644 1636 if (collect) 1645 1637 NBCGenGetVar(stree, _result); … … 1647 1639 NBCGenPUSH(kNewtRefNIL); 1648 1640 1649 // obNpb`1650 NBCBreakBackPatchs(loop_head, CX); // break ðobNpb`1651 1652 // iterator Ìãn1641 // バックパッチ 1642 NBCBreakBackPatchs(loop_head, CX); // break をバックパッチ 1643 1644 // iterator の後始末 1653 1645 if (collect) 1654 1646 { … … 1663 1655 1664 1656 /*------------------------------------------------------------------------*/ 1665 /** WHILE ¶ÌoCgR[h𶬷é1666 * 1667 * @param stree [in] \¶Ø1668 * @param cond [in] ð®Ì\¶Øm[h1669 * @param expr [in] Às¶Ì\¶Øm[h1670 * 1671 * @return ȵ1657 /** WHILE文のバイトコードを生成する 1658 * 1659 * @param stree [in] 構文木 1660 * @param cond [in] 条件式の構文木ノード 1661 * @param expr [in] 実行文の構文木ノード 1662 * 1663 * @return なし 1672 1664 */ 1673 1665 … … 1677 1669 uint32_t cond_cx; 1678 1670 1679 // loop Ìæª1671 // loop の先頭 1680 1672 loop_head = CX; 1681 1673 1682 // ð¶1674 // 条件文 1683 1675 NBCGenBC_op(stree, cond); 1684 1676 cond_cx = NBCGenBranch(kNBCBranchIfFalse); 1685 1677 1686 // Às¶1678 // 実行文 1687 1679 NBCGenBC_stmt(stree, expr, false); 1688 1680 1689 NBCGenCode(kNBCBranch, loop_head); // loop ÌæªÖ1690 1691 // obNpb`1692 NBCBackPatch(cond_cx, CX); // ð¶ðobNpb`1693 1694 // ßèl1681 NBCGenCode(kNBCBranch, loop_head); // loop の先頭へ 1682 1683 // バックパッチ 1684 NBCBackPatch(cond_cx, CX); // 条件文をバックパッチ 1685 1686 // 戻り値 1695 1687 NBCGenPUSH(kNewtRefNIL); 1696 1688 1697 NBCBreakBackPatchs(loop_head, CX); // break ðobNpb`1698 } 1699 1700 1701 /*------------------------------------------------------------------------*/ 1702 /** REPEAT ¶ÌoCgR[h𶬷é1703 * 1704 * @param stree [in] \¶Ø1705 * @param expr [in] Às¶Ì\¶Øm[h1706 * @param cond [in] ð®Ì\¶Øm[h1707 * 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 なし 1709 1701 */ 1710 1702 … … 1713 1705 uint32_t loop_head; 1714 1706 1715 // loop Ìæª1707 // loop の先頭 1716 1708 loop_head = CX; 1717 1709 1718 // Às¶1710 // 実行文 1719 1711 NBCGenBC_stmt(stree, expr, false); 1720 1712 1721 // ð¶1713 // 条件文 1722 1714 NBCGenBC_op(stree, cond); 1723 NBCGenCode(kNBCBranchIfFalse, loop_head); // loop ÌæªÖ1724 1725 // ßèl1715 NBCGenCode(kNBCBranchIfFalse, loop_head); // loop の先頭へ 1716 1717 // 戻り値 1726 1718 NBCGenPUSH(kNewtRefNIL); 1727 1719 1728 // obNpb`1729 NBCBreakBackPatchs(loop_head, CX); // break ðobNpb`1730 } 1731 1732 1733 /*------------------------------------------------------------------------*/ 1734 /** BREAK ¶ÌoCgR[h𶬷é1735 * 1736 * @param stree [in] \¶Ø1737 * @param expr [in] Às¶Ì\¶Øm[h1738 * 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 なし 1740 1732 */ 1741 1733 … … 1744 1736 uint32_t cx; 1745 1737 1746 // ßèl1738 // 戻り値 1747 1739 if (expr == kNewtRefUnbind) 1748 1740 NBCGenPUSH(kNewtRefNIL); … … 1750 1742 NBCGenBC_op(stree, expr); 1751 1743 1752 // u` 1753 cx = NBCGenBranch(kNBCBranch); // loop ÌIíèÖ 1754 NBCPushBreakStack(cx); // obNpb`̽ßÉX^bNÉvbV 1755 ·é 1756 } 1757 1758 1759 /*------------------------------------------------------------------------*/ 1760 /** ¶ñ̽ßÌoCgR[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 なし 1768 1759 */ 1769 1760 … … 1790 1781 1791 1782 /*------------------------------------------------------------------------*/ 1792 /** ãü®ÌoCgR[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 なし 1800 1791 */ 1801 1792 … … 1807 1798 if (NewtHasSlot(CONSTANT, lvalue)) 1808 1799 { 1809 // èÌê1800 // 定数の場合 1810 1801 NBError(kNErrAssignToConstant); 1811 1802 return; … … 1869 1860 1870 1861 /*------------------------------------------------------------------------*/ 1871 /** EXISTS ®ÌoCgR[h𶬷é1872 * 1873 * @param stree [in] \¶Ø1874 * @param r [in] \¶Øm[h1875 * 1876 * @return ȵ1862 /** EXISTS式のバイトコードを生成する 1863 * 1864 * @param stree [in] 構文木 1865 * @param r [in] 構文木ノード 1866 * 1867 * @return なし 1877 1868 */ 1878 1869 … … 1883 1874 if (NewtFindArrayIndex(LITERALS, r, 0) != -1) 1884 1875 { 1885 // [JϪ龳êÄ¢éê1876 // ローカル変数が宣言されている場合 1886 1877 NBCGenPUSH(kNewtRefTRUE); 1887 1878 } … … 1919 1910 1920 1911 /*------------------------------------------------------------------------*/ 1921 /** V[oÌoCgR[h𶬷é1922 * 1923 * @param stree [in] \¶Ø1924 * @param r [in] \¶Øm[h1925 * 1926 * @return ȵ1912 /** レシーバのバイトコードを生成する 1913 * 1914 * @param stree [in] 構文木 1915 * @param r [in] 構文木ノード 1916 * 1917 * @return なし 1927 1918 */ 1928 1919 … … 1937 1928 1938 1929 /*------------------------------------------------------------------------*/ 1939 /** \bhEXISTS®ÌoCgR[h𶬷é1940 * 1941 * @param stree [in] \¶Ø1942 * @param receiver [in] V[o1943 * @param name [in] \bh¼1944 * 1945 * @return ȵ1930 /** メソッドEXISTS式のバイトコードを生成する 1931 * 1932 * @param stree [in] 構文木 1933 * @param receiver [in] レシーバ 1934 * @param name [in] メソッド名 1935 * 1936 * @return なし 1946 1937 */ 1947 1938 … … 1949 1940 nps_node_t receiver, nps_node_t name) 1950 1941 { 1951 // receiver ̶¬1942 // receiver の生成 1952 1943 NBCGenReceiver(stree, receiver); 1953 1944 … … 1955 1946 NBCGenBC_op(stree, name); 1956 1947 1957 // hasVariable ðÄo·1948 // hasVariable を呼出す 1958 1949 NBCGenCallFn(NSSYM0(hasVariable), 2); 1959 1950 } … … 1961 1952 1962 1953 /*------------------------------------------------------------------------*/ 1963 /** Öè`ÌoCgR[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 なし 1970 1961 */ 1971 1962 … … 1984 1975 1985 1976 /*------------------------------------------------------------------------*/ 1986 /** O[oÖè`ÌoCgR[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 なし 1993 1984 */ 1994 1985 … … 2003 1994 2004 1995 /*------------------------------------------------------------------------*/ 2005 /** ÖÄoµÌoCgR[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 なし 2012 2003 */ 2013 2004 … … 2024 2015 2025 2016 /*------------------------------------------------------------------------*/ 2026 /** ÖIuWFNgÀsÌoCgR[h𶬷é2027 * 2028 * @param stree [in] \¶Ø2029 * @param fn [in] ÖIuWFNg2030 * @param args [in] ø2031 * 2032 * @return ȵ2017 /** 関数オブジェクト実行のバイトコードを生成する 2018 * 2019 * @param stree [in] 構文木 2020 * @param fn [in] 関数オブジェクト 2021 * @param args [in] 引数 2022 * 2023 * @return なし 2033 2024 */ 2034 2025 … … 2047 2038 2048 2039 /*------------------------------------------------------------------------*/ 2049 /** QÖÌÄoµoCgR[h𶬷é2050 * 2051 * @param stree [in] \¶Ø2052 * @param name [in] Ö¼2053 * @param op1 [in] øP2054 * @param op2 [in] øQ2055 * 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 なし 2057 2048 */ 2058 2049 … … 2068 2059 2069 2060 /*------------------------------------------------------------------------*/ 2070 /** \bhMÌoCgR[h𶬷é2071 * 2072 * @param stree [in] \¶Ø2073 * @param code [in] M^Cv2074 * @param receiver [in] V[o2075 * @param r [in] \bh¼{ø2076 * 2077 * @return ȵ2061 /** メソッド送信のバイトコードを生成する 2062 * 2063 * @param stree [in] 構文木 2064 * @param code [in] 送信タイプ 2065 * @param receiver [in] レシーバ 2066 * @param r [in] メソッド名+引数 2067 * 2068 * @return なし 2078 2069 */ 2079 2070 … … 2086 2077 node = &stree[NPSRefToSyntaxNode(r)]; 2087 2078 2088 // øÌ¶¬2079 // 引数の生成 2089 2080 NBCGenBC_op(stree, node->op2); 2090 2081 numArgs = NBCCountNumArgs(stree, node->op2); 2091 2082 2092 // message ̶¬2083 // message の生成 2093 2084 NBCGenPUSH(node->op1); 2094 2085 2095 // receiver ̶¬2086 // receiver の生成 2096 2087 NBCGenReceiver(stree, receiver); 2097 2088 2098 // bZ[WÄoµÌ¶¬2089 // メッセージ呼出しの生成 2099 2090 NBCGenCode(code, numArgs); 2100 2091 } … … 2102 2093 2103 2094 /*------------------------------------------------------------------------*/ 2104 /** \bhÄMÌoCgR[h𶬷é2105 * 2106 * @param stree [in] \¶Ø2107 * @param code [in] M^Cv2108 * @param name [in] \bh¼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 なし 2112 2103 */ 2113 2104 … … 2126 2117 2127 2118 /*------------------------------------------------------------------------*/ 2128 /** zñì¬ÌoCgR[h𶬷é2129 * 2130 * @param stree [in] \¶Ø2131 * @param klass [in] NX2132 * @param r [in] ú»f[^2133 * 2134 * @return ȵ2119 /** 配列作成のバイトコードを生成する 2120 * 2121 * @param stree [in] 構文木 2122 * @param klass [in] クラス 2123 * @param r [in] 初期化データ 2124 * 2125 * @return なし 2135 2126 */ 2136 2127 … … 2148 2139 2149 2140 /*------------------------------------------------------------------------*/ 2150 /** t[ì¬ÌoCgR[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 なし 2156 2147 */ 2157 2148 … … 2170 2161 2171 2162 /*------------------------------------------------------------------------*/ 2172 /** ßèlªspÌêÌoCgR[h𶬷é2173 * 2174 * @param ret [in] ßèlÌL³2175 * 2176 * @return ȵ2163 /** 戻り値が不用の場合のバイトコードを生成する 2164 * 2165 * @param ret [in] 戻り値の有無 2166 * 2167 * @return なし 2177 2168 */ 2178 2169 … … 2185 2176 2186 2177 /*------------------------------------------------------------------------*/ 2187 /** \¶R[hÌoCgR[h𶬷é2188 * 2189 * @param stree [in] \¶Ø2190 * @param node [in] \¶Øm[h2191 * @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 なし 2194 2185 */ 2195 2186 … … 2352 2343 2353 2344 /*------------------------------------------------------------------------*/ 2354 /** øÌðJEg·é2355 * 2356 * @param stree [in] \¶Ø2357 * @param r [in] \¶Øm[h2358 * 2359 * @return ȵ2345 /** 引数の数をカウントする 2346 * 2347 * @param stree [in] 構文木 2348 * @param r [in] 構文木ノード 2349 * 2350 * @return なし 2360 2351 */ 2361 2352 … … 2387 2378 2388 2379 /*------------------------------------------------------------------------*/ 2389 /** t[ܽÍzñÌú»oCgR[h𶬷éiÄAÄoµpj2390 * 2391 * @param stree [in] \¶Ø2392 * @param r [in] \¶Øm[h2393 * 2394 * @return ȵ2380 /** フレームまたは配列の初期化バイトコードを生成する(再帰呼出し用) 2381 * 2382 * @param stree [in] 構文木 2383 * @param r [in] 構文木ノード 2384 * 2385 * @return なし 2395 2386 */ 2396 2387 … … 2449 2440 2450 2441 /*------------------------------------------------------------------------*/ 2451 /** t[ܽÍzñÌú»oCgR[h𶬷é2452 * 2453 * @param stree [in] \¶Ø2454 * @param r [in] \¶Øm[h2455 * 2456 * @return ȵ2442 /** フレームまたは配列の初期化バイトコードを生成する 2443 * 2444 * @param stree [in] 構文木 2445 * @param r [in] 構文木ノード 2446 * 2447 * @return なし 2457 2448 */ 2458 2449 … … 2480 2471 2481 2472 /*------------------------------------------------------------------------*/ 2482 /** oCgR[h̶¬iÄAÄoµpj2483 * 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 なし 2489 2480 */ 2490 2481 … … 2567 2558 2568 2559 /*------------------------------------------------------------------------*/ 2569 /** oCgR[h̶¬2570 * 2571 * @param stree [in] \¶Ø2572 * @param size [in] \¶ØÌ·³2573 * @param ret [in] ßèlÌL³2574 * 2575 * @return ÖIuWFNg2560 /** バイトコードの生成 2561 * 2562 * @param stree [in] 構文木 2563 * @param size [in] 構文木の長さ 2564 * @param ret [in] 戻り値の有無 2565 * 2566 * @return 関数オブジェクト 2576 2567 */ 2577 2568 … … 2605 2596 2606 2597 /*------------------------------------------------------------------------*/ 2607 /** \[Xt@CðRpC2608 * 2609 * @param s [in] \[Xt@CÌpX2610 * @param ret [in] ßèlÌL³2611 * 2612 * @return ÖIuWFNg2598 /** ソースファイルをコンパイル 2599 * 2600 * @param s [in] ソースファイルのパス 2601 * @param ret [in] 戻り値の有無 2602 * 2603 * @return 関数オブジェクト 2613 2604 */ 2614 2605 … … 2633 2624 2634 2625 /*------------------------------------------------------------------------*/ 2635 /** ¶ñðRpC2636 * 2637 * @param s [in] XNvg¶ñ2638 * @param ret [in] ßèlÌL³2639 * 2640 * @return ÖIuWFNg2626 /** 文字列をコンパイル 2627 * 2628 * @param s [in] スクリプト文字列 2629 * @param ret [in] 戻り値の有無 2630 * 2631 * @return 関数オブジェクト 2641 2632 */ 2642 2633 … … 2667 2658 #pragma mark - 2668 2659 /*------------------------------------------------------------------------*/ 2669 /** G[bZ[WÌ\¦2670 * 2671 * @param err [in] G[R[h2672 * 2673 * @return ȵ2660 /** エラーメッセージの表示 2661 * 2662 * @param err [in] エラーコード 2663 * 2664 * @return なし 2674 2665 */ 2675 2666 -
NEWT0/trunk/src/newt_core/NewtEnv.c
r39 r68 2 2 /** 3 3 * @file NewtEnv.c 4 * @brief Às«4 * @brief 実行環境 5 5 * 6 6 * @author M.Nukui … … 11 11 12 12 13 /* wb_t@C*/13 /* ヘッダファイル */ 14 14 #include <string.h> 15 15 #include <errno.h> … … 24 24 25 25 26 /* }N*/27 #define SYM_TABLE (newt_env.sym_table) ///< V{e[u28 #define ROOT (newt_env.root) ///< [gIuWFNg29 #define GLOBALS (newt_env.globals) ///< O[oÏe[u30 #define GLOBAL_FNS (newt_env.global_fns) ///< O[oÖe[u31 #define MAGIC_POINTERS (newt_env.magic_pointers) ///< }WbN|C^e[u32 33 #define INITSYM2(sym, str) sym = NewtMakeSymbol(str) ///< æg¤V{Ìú»34 #define INITSYM(name) INITSYM2(newt_sym.name, #name) ///< æg¤V{Ìú»iÁê¶Èµj35 36 37 /* O[oÏ*/38 newt_env_t newt_env; ///< Às«39 newt_sym_t newt_sym; ///< æg¤V{ÌÛÇê40 41 42 /* Övg^Cv*/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 /* グローバル変数 */ 38 newt_env_t newt_env; ///< 実行環境 39 newt_sym_t newt_sym; ///< よく使うシンボルの保管場所 40 41 42 /* 関数プロトタイプ */ 43 43 char * replacechr(char * str, char srch, char repl); 44 44 … … 52 52 #pragma mark - 53 53 /*------------------------------------------------------------------------*/ 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 置き換えられた文字列 61 61 */ 62 62 … … 76 76 #pragma mark - 77 77 /*------------------------------------------------------------------------*/ 78 /** «ϩçftHgGR[fBOðæ¾79 * 80 * @return ftHgGR[fBOi¶ñj78 /** 環境変数からデフォルトエンコーディングを取得 79 * 80 * @return デフォルトエンコーディング(文字列) 81 81 */ 82 82 … … 101 101 #pragma mark - 102 102 /*------------------------------------------------------------------------*/ 103 /** æg¤V{Ìú»104 * 105 * @return ȵ103 /** よく使うシンボルの初期化 104 * 105 * @return なし 106 106 */ 107 107 … … 149 149 INITSYM(forEachState); 150 150 151 // functions iK{j151 // functions(必須) 152 152 INITSYM(hasVariable); 153 153 INITSYM(hasVar); … … 212 212 213 213 /*------------------------------------------------------------------------*/ 214 /** VXe«ÏÌú»215 * 216 * @return ȵ214 /** システム環境変数の初期化 215 * 216 * @return なし 217 217 */ 218 218 … … 262 262 263 263 /*------------------------------------------------------------------------*/ 264 /** R}hCøÌú»265 * 266 * @param argc [in] R}hCøÌ267 * @param argv [in] R}hCøÌzñ268 * @param n [in] R}hCøÌÊu269 * 270 * @return ȵ264 /** コマンドライン引数の初期化 265 * 266 * @param argc [in] コマンドライン引数の数 267 * @param argv [in] コマンドライン引数の配列 268 * @param n [in] コマンドライン引数の位置 269 * 270 * @return なし 271 271 */ 272 272 … … 320 320 321 321 /*------------------------------------------------------------------------*/ 322 /** o[WîñÌú»323 * 324 * @return ȵ322 /** バージョン情報の初期化 323 * 324 * @return なし 325 325 */ 326 326 … … 331 331 versInfo = NcMakeFrame(); 332 332 333 // v_Ng¼333 // プロダクト名 334 334 NcSetSlot(versInfo, NSSYM(name), NewtMakeString(NEWT_NAME, true)); 335 // vgÔ335 // プロト番号 336 336 NcSetSlot(versInfo, NSSYM(proto), NewtMakeString(NEWT_PROTO, true)); 337 // o[WÔ337 // バージョン番号 338 338 NcSetSlot(versInfo, NSSYM(version), NewtMakeString(NEWT_VERSION, true)); 339 // rhÔ339 // ビルド番号 340 340 NcSetSlot(versInfo, NSSYM(build), NewtMakeString(NEWT_BUILD, true)); 341 // Rs[Cg341 // コピーライト 342 342 NcSetSlot(versInfo, NSSYM(copyright), NewtMakeString(NEWT_COPYRIGHT, true)); 343 // X^bt[343 // スタッフロール 344 344 NcSetSlot(versInfo, NSSYM(staff), NewtMakeString(NEWT_STAFF, true)); 345 345 346 // [hI[ɵÄO[oÏÉüêé346 // リードオンリーにしてグローバル変数に入れる 347 347 NcSetSlot(GLOBALS, NSSYM(_VERSION_), NewtPackLiteral(versInfo)); 348 348 } … … 350 350 351 351 /*------------------------------------------------------------------------*/ 352 /** Às«Ìú»353 * 354 * @param argc [in] R}hCøÌ355 * @param argv [in] R}hCøÌzñ356 * @param n [in] R}hCøÌÊu357 * 358 * @return ȵ352 /** 実行環境の初期化 353 * 354 * @param argc [in] コマンドライン引数の数 355 * @param argv [in] コマンドライン引数の配列 356 * @param n [in] コマンドライン引数の位置 357 * 358 * @return なし 359 359 */ 360 360 361 361 void NewtInitEnv(int argc, const char * argv[], int n) 362 362 { 363 // V{e[uÌì¬363 // シンボルテーブルの作成 364 364 SYM_TABLE = NewtMakeArray(kNewtRefUnbind, 0); 365 365 NewtInitSYM(); 366 366 367 // [gt[Ìì¬367 // ルートフレームの作成 368 368 ROOT = NcMakeFrame(); 369 // O[oÏe[uÌì¬369 // グローバル変数テーブルの作成 370 370 GLOBALS = NcMakeFrame(); 371 // O[oÖe[uÌì¬371 // グローバル関数テーブルの作成 372 372 GLOBAL_FNS = NcMakeFrame(); 373 // }WbN|C^e[uÌì¬373 // マジックポインタテーブルの作成 374 374 #ifdef __NAMED_MAGIC_POINTER__ 375 375 MAGIC_POINTERS = NcMakeFrame(); … … 378 378 #endif 379 379 380 // [gt[Éee[uði[380 // ルートフレームに各テーブルを格納 381 381 NcSetSlot(ROOT, NSSYM0(globals), GLOBALS); 382 382 NcSetSlot(ROOT, NSSYM0(global_fns), GLOBAL_FNS); … … 384 384 NcSetSlot(ROOT, NSSYM0(sym_table), SYM_TABLE); 385 385 386 // «ÏÌú»386 // 環境変数の初期化 387 387 NewtInitSysEnv(); 388 // ARGV Ìú»388 // ARGV の初期化 389 389 NewtInitARGV(argc, argv, n); 390 // o[WîñÌú»390 // バージョン情報の初期化 391 391 NewtInitVersInfo(); 392 392 } … … 394 394 395 395 /*------------------------------------------------------------------------*/ 396 /** C^v^Ìú»397 * 398 * @param argc [in] R}hCøÌ399 * @param argv [in] R}hCøÌzñ400 * @param n [in] R}hCøÌÊu401 * 402 * @return ȵ396 /** インタプリタの初期化 397 * 398 * @param argc [in] コマンドライン引数の数 399 * @param argv [in] コマンドライン引数の配列 400 * @param n [in] コマンドライン引数の位置 401 * 402 * @return なし 403 403 */ 404 404 405 405 void NewtInit(int argc, const char * argv[], int n) 406 406 { 407 // v[ÌmÛ407 // メモリプールの確保 408 408 NEWT_POOL = NewtPoolAlloc(NEWT_POOL_EXPANDSPACE); 409 // Às«Ìú»409 // 実行環境の初期化 410 410 NewtInitEnv(argc, argv, n); 411 411 } … … 413 413 414 414 /*------------------------------------------------------------------------*/ 415 /** C^v^Ìãn416 * 417 * @return ȵ415 /** インタプリタの後始末 416 * 417 * @return なし 418 418 */ 419 419 420 420 void NewtCleanup(void) 421 421 { 422 // ãnð·é±Æ423 424 // v[Ìðú422 // 後始末をすること 423 424 // メモリプールの解放 425 425 if (NEWT_POOL != NULL) 426 426 { … … 434 434 #pragma mark - 435 435 /*------------------------------------------------------------------------*/ 436 /** V{e[u©çV{ðõ·é437 * 438 * @param name [in] V{̼O439 * 440 * @return V{IuWFNg436 /** シンボルテーブルからシンボルを検索する 437 * 438 * @param name [in] シンボルの名前 439 * 440 * @return シンボルオブジェクト 441 441 */ 442 442 … … 449 449 #pragma mark - 450 450 /*------------------------------------------------------------------------*/ 451 /** O[oÖÌL³ð²×é452 * 453 * @param r [in] V{IuWFNg454 * 455 * @retval true O[oÖª¶Ý·é456 * @retval false O[oÖª¶ÝµÈ¢451 /** グローバル関数の有無を調べる 452 * 453 * @param r [in] シンボルオブジェクト 454 * 455 * @retval true グローバル関数が存在する 456 * @retval false グローバル関数が存在しない 457 457 */ 458 458 … … 464 464 465 465 /*------------------------------------------------------------------------*/ 466 /** O[oÏÌL³ð²×é467 * 468 * @param r [in] V{IuWFNg469 * 470 * @retval true O[oϪ¶Ý·é471 * @retval false O[oϪ¶ÝµÈ¢466 /** グローバル変数の有無を調べる 467 * 468 * @param r [in] シンボルオブジェクト 469 * 470 * @retval true グローバル変数が存在する 471 * @retval false グローバル変数が存在しない 472 472 */ 473 473 … … 480 480 #pragma mark - 481 481 /*------------------------------------------------------------------------*/ 482 /** O[oÖÌL³ð²×é483 * 484 * @param rcvr [in] V[o485 * @param r [in] V{IuWFNg486 * 487 * @retval TRUE O[oÖª¶Ý·é488 * @retval NIL O[oÖª¶ÝµÈ¢489 * 490 * @note XNvg©çÌÄoµp482 /** グローバル関数の有無を調べる 483 * 484 * @param rcvr [in] レシーバ 485 * @param r [in] シンボルオブジェクト 486 * 487 * @retval TRUE グローバル関数が存在する 488 * @retval NIL グローバル関数が存在しない 489 * 490 * @note スクリプトからの呼出し用 491 491 */ 492 492 … … 499 499 #ifdef __USE_OBSOLETE_STYLE__ 500 500 /*------------------------------------------------------------------------*/ 501 /** O[oÖÌL³ð²×é(OBSOLETE)502 * 503 * @param rcvr [in] V[o504 * @param r [in] V{IuWFNg505 * 506 * @retval TRUE O[oÖª¶Ý·é507 * @retval NIL O[oÖª¶ÝµÈ¢508 * 509 * @note XNvg©çÌÄoµp501 /** グローバル関数の有無を調べる (OBSOLETE) 502 * 503 * @param rcvr [in] レシーバ 504 * @param r [in] シンボルオブジェクト 505 * 506 * @retval TRUE グローバル関数が存在する 507 * @retval NIL グローバル関数が存在しない 508 * 509 * @note スクリプトからの呼出し用 510 510 */ 511 511 … … 518 518 519 519 /*------------------------------------------------------------------------*/ 520 /** O[oÖÌæ¾521 * 522 * @param rcvr [in] V[o523 * @param r [in] V{IuWFNg524 * 525 * @return ÖIuWFNg520 /** グローバル関数の取得 521 * 522 * @param rcvr [in] レシーバ 523 * @param r [in] シンボルオブジェクト 524 * 525 * @return 関数オブジェクト 526 526 */ 527 527 … … 533 533 534 534 /*------------------------------------------------------------------------*/ 535 /** O[oÖÌè`536 * 537 * @param rcvr [in] V[o538 * @param r [in] V{IuWFNg539 * @param fn [in] ÖIuWFNg540 * 541 * @return ÖIuWFNg535 /** グローバル関数の定義 536 * 537 * @param rcvr [in] レシーバ 538 * @param r [in] シンボルオブジェクト 539 * @param fn [in] 関数オブジェクト 540 * 541 * @return 関数オブジェクト 542 542 */ 543 543 … … 551 551 /** Undefine a global function. 552 552 * 553 * @param rcvr [in] V[o554 * @param r [in] V{IuWFNg553 * @param rcvr [in] レシーバ 554 * @param r [in] シンボルオブジェクト 555 555 * 556 556 * @return NIL … … 565 565 566 566 /*------------------------------------------------------------------------*/ 567 /** O[oÏÌL³ð²×é568 * 569 * @param rcvr [in] V[o570 * @param r [in] V{IuWFNg571 * 572 * @retval TRUE O[oϪ¶Ý·é573 * @retval NIL O[oϪ¶ÝµÈ¢574 * 575 * @note XNvg©çÌÄoµp567 /** グローバル変数の有無を調べる 568 * 569 * @param rcvr [in] レシーバ 570 * @param r [in] シンボルオブジェクト 571 * 572 * @retval TRUE グローバル変数が存在する 573 * @retval NIL グローバル変数が存在しない 574 * 575 * @note スクリプトからの呼出し用 576 576 */ 577 577 … … 584 584 #ifdef __USE_OBSOLETE_STYLE__ 585 585 /*------------------------------------------------------------------------*/ 586 /** O[oÏÌL³ð²×é(OBSOLETE)587 * 588 * @param rcvr [in] V[o589 * @param r [in] V{IuWFNg590 * 591 * @retval TRUE O[oϪ¶Ý·é592 * @retval NIL O[oϪ¶ÝµÈ¢593 * 594 * @note XNvg©çÌÄoµp586 /** グローバル変数の有無を調べる (OBSOLETE) 587 * 588 * @param rcvr [in] レシーバ 589 * @param r [in] シンボルオブジェクト 590 * 591 * @retval TRUE グローバル変数が存在する 592 * @retval NIL グローバル変数が存在しない 593 * 594 * @note スクリプトからの呼出し用 595 595 */ 596 596 … … 603 603 604 604 /*------------------------------------------------------------------------*/ 605 /** O[oÏÌæ¾606 * 607 * @param rcvr [in] V[o608 * @param r [in] V{IuWFNg609 * 610 * @return IuWFNg605 /** グローバル変数の取得 606 * 607 * @param rcvr [in] レシーバ 608 * @param r [in] シンボルオブジェクト 609 * 610 * @return オブジェクト 611 611 */ 612 612 … … 618 618 619 619 /*------------------------------------------------------------------------*/ 620 /** O[oÏÉlðZbg·é621 * 622 * @param rcvr [in] V[o623 * @param r [in] V{IuWFNg624 * @param v [in] lIuWFNg625 * 626 * @return IuWFNg620 /** グローバル変数に値をセットする 621 * 622 * @param rcvr [in] レシーバ 623 * @param r [in] シンボルオブジェクト 624 * @param v [in] 値オブジェクト 625 * 626 * @return オブジェクト 627 627 */ 628 628 … … 635 635 #ifdef __USE_OBSOLETE_STYLE__ 636 636 /*------------------------------------------------------------------------*/ 637 /** O[oÏÉlðZbg·é(OBSOLETE)638 * 639 * @param rcvr [in] V[o640 * @param r [in] V{IuWFNg641 * @param v [in] lIuWFNg642 * 643 * @return IuWFNg637 /** グローバル変数に値をセットする (OBSOLETE) 638 * 639 * @param rcvr [in] レシーバ 640 * @param r [in] シンボルオブジェクト 641 * @param v [in] 値オブジェクト 642 * 643 * @return オブジェクト 644 644 */ 645 645 … … 654 654 /** Undefine a global variable. 655 655 * 656 * @param rcvr [in] V[o657 * @param r [in] V{IuWFNg656 * @param rcvr [in] レシーバ 657 * @param r [in] シンボルオブジェクト 658 658 * 659 659 * @return NIL … … 670 670 671 671 /*------------------------------------------------------------------------*/ 672 /** }WbN|C^ÌQÆðð·é673 * 674 * @param r [in] }WbN|C^675 * 676 * @return IuWFNg672 /** マジックポインタの参照を解決する 673 * 674 * @param r [in] マジックポインタ 675 * 676 * @return オブジェクト 677 677 */ 678 678 … … 694 694 695 695 /*------------------------------------------------------------------------*/ 696 /** }WbN|C^Ìè`697 * 698 * @param rcvr [in] V[o699 * @param r [in] }WbN|C^700 * @param v [in] IuWFNg701 * 702 * @return IuWFNg696 /** マジックポインタの定義 697 * 698 * @param rcvr [in] レシーバ 699 * @param r [in] マジックポインタ 700 * @param v [in] オブジェクト 701 * 702 * @return オブジェクト 703 703 */ 704 704 … … 727 727 728 728 /*------------------------------------------------------------------------*/ 729 /** }WbN|C^ÌQÆðð·é730 * 731 * @param r [in] }WbN|C^732 * 733 * @return IuWFNg729 /** マジックポインタの参照を解決する 730 * 731 * @param r [in] マジックポインタ 732 * 733 * @return オブジェクト 734 734 */ 735 735 … … 746 746 747 747 if (table != 0) 748 { // e[uÔ 0 ÈOÍ¢T|[g748 { // テーブル番号 0 以外は未サポート 749 749 return r; 750 750 } … … 765 765 766 766 /*------------------------------------------------------------------------*/ 767 /** }WbN|C^Ìè`768 * 769 * @param rcvr [in] V[o770 * @param r [in] }WbN|C^771 * @param v [in] IuWFNg772 * 773 * @return IuWFNg767 /** マジックポインタの定義 768 * 769 * @param rcvr [in] レシーバ 770 * @param r [in] マジックポインタ 771 * @param v [in] オブジェクト 772 * 773 * @return オブジェクト 774 774 */ 775 775 … … 785 785 786 786 if (table != 0) 787 { // e[uÔ 0 ÈOÍ¢T|[g787 { // テーブル番号 0 以外は未サポート 788 788 return kNewtRefUnbind; 789 789 } … … 799 799 800 800 if (NewtLength(MAGIC_POINTERS) <= index) 801 { // e[uÌ·³ðg£801 { // テーブルの長さを拡張 802 802 NewtSetLength(MAGIC_POINTERS, index + 1); 803 803 } … … 811 811 #pragma mark - 812 812 /*------------------------------------------------------------------------*/ 813 /** [gIuWFNgÌæ¾814 * 815 * @param rcvr [in] V[o816 * 817 * @return [gIuWFNg813 /** ルートオブジェクトの取得 814 * 815 * @param rcvr [in] レシーバ 816 * 817 * @return ルートオブジェクト 818 818 */ 819 819 … … 825 825 826 826 /*------------------------------------------------------------------------*/ 827 /** O[oÏe[uÌæ¾828 * 829 * @param rcvr [in] V[o830 * 831 * @return O[oÏe[u827 /** グローバル変数テーブルの取得 828 * 829 * @param rcvr [in] レシーバ 830 * 831 * @return グローバル変数テーブル 832 832 */ 833 833 … … 839 839 840 840 /*------------------------------------------------------------------------*/ 841 /** O[oÖe[uÌæ¾842 * 843 * @param rcvr [in] V[o844 * 845 * @return O[oÖe[u841 /** グローバル関数テーブルの取得 842 * 843 * @param rcvr [in] レシーバ 844 * 845 * @return グローバル関数テーブル 846 846 */ 847 847 … … 853 853 854 854 /*------------------------------------------------------------------------*/ 855 /** }WbN|C^Öe[uÌæ¾856 * 857 * @param rcvr [in] V[o858 * 859 * @return }WbN|C^Öe[u855 /** マジックポインタ関数テーブルの取得 856 * 857 * @param rcvr [in] レシーバ 858 * 859 * @return マジックポインタ関数テーブル 860 860 */ 861 861 … … 867 867 868 868 /*------------------------------------------------------------------------*/ 869 /** V{e[uÌæ¾870 * 871 * @param rcvr [in] V[o872 * 873 * @return V{e[u869 /** シンボルテーブルの取得 870 * 871 * @param rcvr [in] レシーバ 872 * 873 * @return シンボルテーブル 874 874 */ 875 875 -
NEWT0/trunk/src/newt_core/NewtFile.c
r56 r68 2 2 /** 3 3 * @file NewtFile.c 4 * @brief t@C4 * @brief ファイル処理 5 5 * 6 6 * @author M.Nukui … … 11 11 12 12 13 /* wb_t@C*/13 /* ヘッダファイル */ 14 14 #include <stdlib.h> 15 15 #include <string.h> … … 37 37 38 38 39 /* è*/39 /* 定数 */ 40 40 41 41 enum { … … 45 45 46 46 47 /* ^é¾*/48 49 /// t@Cg£q47 /* 型宣言 */ 48 49 /// ファイル拡張子 50 50 typedef struct { 51 newtRefVar ext; ///< g£q52 int type; ///< ^Cv51 newtRefVar ext; ///< 拡張子 52 int type; ///< タイプ 53 53 } file_ext_t; 54 54 … … 56 56 #ifdef HAVE_DLOPEN 57 57 /*------------------------------------------------------------------------*/ 58 /** ®ICuðCXg[·é59 * 60 * @param fname [in] t@CÌpX61 * 62 * @return ®ICuÌfXNv^58 /** 動的ライブラリをインストールする 59 * 60 * @param fname [in] ファイルのパス 61 * 62 * @return 動的ライブラリのデスクプリタ 63 63 */ 64 64 … … 90 90 91 91 /*------------------------------------------------------------------------*/ 92 /** t@C̶ÝmF93 * 94 * @param path [in] t@CÌpX95 * 96 * @retval true t@Cª¶Ý·é97 * @retval false t@Cª¶ÝµÈ¢92 /** ファイルの存在確認 93 * 94 * @param path [in] ファイルのパス 95 * 96 * @retval true ファイルが存在する 97 * @retval false ファイルが存在しない 98 98 */ 99 99 … … 116 116 #pragma mark - 117 117 /*------------------------------------------------------------------------*/ 118 /** t@CZp[^ðÔ·119 * 120 * @return t@CZp[^118 /** ファイルセパレータを返す 119 * 120 * @return ファイルセパレータ 121 121 */ 122 122 … … 128 128 129 129 /*------------------------------------------------------------------------*/ 130 /** z[fBNgÌpXðæ¾131 * 132 * @param s [in] t@CÌpX133 * @param subdir [out] TufBNg134 * 135 * @return z[fBNgÌpX136 * 137 * @note æ¾³ê½z[fBNg̶ñÍ free ·éKvª é130 /** ホームディレクトリのパスを取得 131 * 132 * @param s [in] ファイルのパス 133 * @param subdir [out]サブディレクトリ 134 * 135 * @return ホームディレクトリのパス 136 * 137 * @note 取得されたホームディレクトリの文字列は free する必要がある 138 138 */ 139 139 … … 141 141 142 142 char * NewtGetHomeDir(const char * s, char ** subdir) 143 { // UNIX Ìê143 { // UNIX の場合 144 144 struct passwd * pswd = NULL; 145 145 uint32_t len; … … 184 184 185 185 char * NewtGetHomeDir(const char * s, char ** subdir) 186 { // Windows Ìê186 { // Windows の場合 187 187 return NULL; 188 188 } … … 192 192 193 193 /*------------------------------------------------------------------------*/ 194 /** fBNg¼Æt@C¼©çpXðì¬195 * 196 * @param s1 [in] fBNg¼197 * @param s2 [in] t@C¼198 * @param sep [in] t@CZp[^199 * 200 * @return 쬳ê½pX201 * 202 * @note æ¾³ê½z[fBNg̶ñÍ free ·éKvª é194 /** ディレクトリ名とファイル名からパスを作成 195 * 196 * @param s1 [in] ディレクトリ名 197 * @param s2 [in] ファイル名 198 * @param sep [in] ファイルセパレータ 199 * 200 * @return 作成されたパス 201 * 202 * @note 取得されたホームディレクトリの文字列は free する必要がある 203 203 */ 204 204 … … 228 228 229 229 /*------------------------------------------------------------------------*/ 230 /** ÎpXðâÎpXÉWJ·é231 * 232 * @param s [i/o] ÎpX¨âÎpX233 * 234 * @return âÎpX230 /** 相対パスを絶対パスに展開する 231 * 232 * @param s [i/o]相対パス→絶対パス 233 * 234 * @return 絶対パス 235 235 */ 236 236 … … 283 283 284 284 /*------------------------------------------------------------------------*/ 285 /** ÎpXðâÎpXÉWJ·é286 * 287 * @param s [in] ÎpXiC¶ñj288 * 289 * @return âÎpXi¶ñIuWFNgj290 * 291 * @note ~, ~user Íz[fBNgÉWJ³êé285 /** 相対パスを絶対パスに展開する 286 * 287 * @param s [in] 相対パス(C文字列) 288 * 289 * @return 絶対パス(文字列オブジェクト) 290 * 291 * @note ~, ~user はホームディレクトリに展開される 292 292 */ 293 293 … … 353 353 #pragma mark - 354 354 /*------------------------------------------------------------------------*/ 355 /** pX©çt@C¼ðæo·356 * 357 * @param s [in] pXÖÌ|C^358 * @param len [in] pX̶359 * 360 * @return t@C¼355 /** パスからファイル名を取出す 356 * 357 * @param s [in] パスへのポインタ 358 * @param len [in] パスの文字数 359 * 360 * @return ファイル名 361 361 */ 362 362 … … 384 384 #pragma mark - 385 385 /*------------------------------------------------------------------------*/ 386 /** \[Xt@CÌRpC387 * 388 * @param rcvr [in] V[o389 * @param r [in] RpC·é\[Xt@CÌpX390 * 391 * @return ø 0 ÌÖIuWFNg386 /** ソースファイルのコンパイル 387 * 388 * @param rcvr [in] レシーバ 389 * @param r [in] コンパイルするソースファイルのパス 390 * 391 * @return 引数 0 の関数オブジェクト 392 392 */ 393 393 … … 406 406 407 407 /*------------------------------------------------------------------------*/ 408 /** CuÌ[h409 * 410 * @param rcvr [in] V[o411 * @param r [in] [h·éCuÌpX412 * 413 * @return ®ICuÌfXNv^408 /** ライブラリのロード 409 * 410 * @param rcvr [in] レシーバ 411 * @param r [in] ロードするライブラリのパス 412 * 413 * @return 動的ライブラリのデスクプリタ 414 414 */ 415 415 … … 451 451 452 452 /*------------------------------------------------------------------------*/ 453 /** \[Xt@CÌ[h454 * 455 * @param rcvr [in] V[o456 * @param r [in] [h·é\[Xt@CÌpX457 * 458 * @return ÀsÊÌIuWFNg453 /** ソースファイルのロード 454 * 455 * @param rcvr [in] レシーバ 456 * @param r [in] ロードするソースファイルのパス 457 * 458 * @return 実行結果のオブジェクト 459 459 */ 460 460 … … 474 474 475 475 /*------------------------------------------------------------------------*/ 476 /** CuÌv477 * 478 * @param r [in] [h·éCuÌV{¶ñ479 * 480 * @return [h³ê½CuÌV{481 * 482 * @note V{ÉæèCuðv·éB483 * g£qÍKvÈ¢BKXCupXÉæèõ³êéB484 * êx[h³ê½CuÍÇÜêÈ¢B485 * Cuª©Â©çÈÄàáOͶµÈ¢B476 /** ライブラリの要求 477 * 478 * @param r [in] ロードするライブラリのシンボル文字列 479 * 480 * @return ロードされたライブラリのシンボル 481 * 482 * @note シンボルによりライブラリを要求する。 483 * 拡張子は必要ない。適宜ライブラリパスにより検索される。 484 * 一度ロードされたライブラリは読込まれない。 485 * ライブラリが見つからなくても例外は発生しない。 486 486 */ 487 487 … … 590 590 591 591 /*------------------------------------------------------------------------*/ 592 /** CuÌv593 * 594 * @param rcvr [in] V[o595 * @param r [in] [h·éCuÌV{¶ñ596 * 597 * @return [h³ê½CuÌV{598 * 599 * @note V{ÉæèCuðv·éB600 * g£qÍKvÈ¢BKXCupXÉæèõ³êéB601 * êx[h³ê½CuÍÇÜêÈ¢B592 /** ライブラリの要求 593 * 594 * @param rcvr [in] レシーバ 595 * @param r [in] ロードするライブラリのシンボル文字列 596 * 597 * @return ロードされたライブラリのシンボル 598 * 599 * @note シンボルによりライブラリを要求する。 600 * 拡張子は必要ない。適宜ライブラリパスにより検索される。 601 * 一度ロードされたライブラリは読込まれない。 602 602 */ 603 603 … … 617 617 #pragma mark - 618 618 /*------------------------------------------------------------------------*/ 619 /** t@C̶ÝmF620 * 621 * @param rcvr [in] V[o622 * @param r [in] t@CÌpX623 * 624 * @retval true t@Cª¶Ý·é625 * @retval false t@Cª¶ÝµÈ¢626 * 627 * @note XNvg©çÌÄoµp619 /** ファイルの存在確認 620 * 621 * @param rcvr [in] レシーバ 622 * @param r [in] ファイルのパス 623 * 624 * @retval true ファイルが存在する 625 * @retval false ファイルが存在しない 626 * 627 * @note スクリプトからの呼出し用 628 628 */ 629 629 … … 639 639 #pragma mark - 640 640 /*------------------------------------------------------------------------*/ 641 /** pX©çfBNg¼ðæo·642 * 643 * @param rcvr [in] V[o644 * @param r [in] t@CÌpX645 * 646 * @return fBNg¼641 /** パスからディレクトリ名を取出す 642 * 643 * @param rcvr [in] レシーバ 644 * @param r [in] ファイルのパス 645 * 646 * @return ディレクトリ名 647 647 */ 648 648 … … 674 674 675 675 /*------------------------------------------------------------------------*/ 676 /** pX©çt@C¼ðæo·677 * 678 * @param rcvr [in] V[o679 * @param r [in] t@CÌpX680 * 681 * @return t@C¼682 * 683 * @note XNvg©çÌÄoµp676 /** パスからファイル名を取出す 677 * 678 * @param rcvr [in] レシーバ 679 * @param r [in] ファイルのパス 680 * 681 * @return ファイル名 682 * 683 * @note スクリプトからの呼出し用 684 684 */ 685 685 … … 701 701 702 702 /*------------------------------------------------------------------------*/ 703 /** fBNg¼Æt@C¼©çpXðì¬704 * 705 * @param rcvr [in] V[o706 * @param r1 [in] fBNg¼707 * @param r2 [in] t@C¼708 * 709 * @return 쬳ê½pX703 /** ディレクトリ名とファイル名からパスを作成 704 * 705 * @param rcvr [in] レシーバ 706 * @param r1 [in] ディレクトリ名 707 * @param r2 [in] ファイル名 708 * 709 * @return 作成されたパス 710 710 */ 711 711 … … 723 723 724 724 /*------------------------------------------------------------------------*/ 725 /** ÎpXðâÎpXÉWJ·é726 * 727 * @param rcvr [in] V[o728 * @param r [in] ÎpX729 * 730 * @return âÎpX731 * 732 * @note ~, ~user Íz[fBNgÉWJ³êé733 * XNvg©çÌÄoµp725 /** 相対パスを絶対パスに展開する 726 * 727 * @param rcvr [in] レシーバ 728 * @param r [in] 相対パス 729 * 730 * @return 絶対パス 731 * 732 * @note ~, ~user はホームディレクトリに展開される 733 * スクリプトからの呼出し用 734 734 */ 735 735 -
NEWT0/trunk/src/newt_core/NewtFns.c
r28 r68 2 2 /** 3 3 * @file NewtFns.c 4 * @brief gÝÖ4 * @brief 組込み関数 5 5 * 6 6 * @author M.Nukui … … 11 11 12 12 13 /* wb_t@C*/13 /* ヘッダファイル */ 14 14 #include <string.h> 15 15 … … 23 23 24 24 25 /* Övg^Cv*/25 /* 関数プロトタイプ */ 26 26 static newtRef NewtRefTypeToClass(uint16_t type); 27 27 static newtRef NewtObjClassOf(newtRefArg r); … … 32 32 #pragma mark - 33 33 /*------------------------------------------------------------------------*/ 34 /** vgp³ÅV{ðõit[ð©Â¯éj35 * 36 * @param start [in] JnIuWFNg37 * @param name [in] V{IuWFNg38 * 39 * @return õ³ê½IuWFNgðÂt[34 /** プロト継承でシンボルを検索(フレームを見つける) 35 * 36 * @param start [in] 開始オブジェクト 37 * @param name [in] シンボルオブジェクト 38 * 39 * @return 検索されたオブジェクトを持つフレーム 40 40 */ 41 41 … … 62 62 63 63 /*------------------------------------------------------------------------*/ 64 /** vgp³ÅV{ðõ65 * 66 * @param start [in] JnIuWFNg67 * @param name [in] V{IuWFNg68 * 69 * @return õ³ê½IuWFNg64 /** プロト継承でシンボルを検索 65 * 66 * @param start [in] 開始オブジェクト 67 * @param name [in] シンボルオブジェクト 68 * 69 * @return 検索されたオブジェクト 70 70 */ 71 71 … … 84 84 85 85 /*------------------------------------------------------------------------*/ 86 /** LVJXR[vÅV{ðõ87 * 88 * @param start [in] JnIuWFNg89 * @param name [in] V{IuWFNg90 * 91 * @return õ³ê½IuWFNg86 /** レキシカルスコープでシンボルを検索 87 * 88 * @param start [in] 開始オブジェクト 89 * @param name [in] シンボルオブジェクト 90 * 91 * @return 検索されたオブジェクト 92 92 */ 93 93 … … 114 114 115 115 /*------------------------------------------------------------------------*/ 116 /** vgAyAgp³ÅV{ðõit[ð©Â¯éj117 * 118 * @param start [in] JnIuWFNg119 * @param name [in] V{IuWFNg120 * 121 * @return õ³ê½IuWFNgðÂt[116 /** プロト、ペアレント継承でシンボルを検索(フレームを見つける) 117 * 118 * @param start [in] 開始オブジェクト 119 * @param name [in] シンボルオブジェクト 120 * 121 * @return 検索されたオブジェクトを持つフレーム 122 122 */ 123 123 … … 155 155 156 156 /*------------------------------------------------------------------------*/ 157 /** vgAyAgp³ÅV{ðõ158 * 159 * @param start [in] JnIuWFNg160 * @param name [in] V{IuWFNg161 * 162 * @return õ³ê½IuWFNg157 /** プロト、ペアレント継承でシンボルを検索 158 * 159 * @param start [in] 開始オブジェクト 160 * @param name [in] シンボルオブジェクト 161 * 162 * @return 検索されたオブジェクト 163 163 */ 164 164 … … 178 178 #pragma mark - 179 179 /*------------------------------------------------------------------------*/ 180 /** V{e[u©çV{ðõ181 * 182 * @param r [in] V{e[u183 * @param name [in] V{¼184 * 185 * @return õ³ê½V{IuWFNg180 /** シンボルテーブルからシンボルを検索 181 * 182 * @param r [in] シンボルテーブル 183 * @param name [in] シンボル名 184 * 185 * @return 検索されたシンボルオブジェクト 186 186 */ 187 187 … … 193 193 194 194 /*------------------------------------------------------------------------*/ 195 /** áOð¶196 * 197 * @param rcvr [in] V[o198 * @param name [in] áOV{199 * @param data [in] áOf[^195 /** 例外を発生 196 * 197 * @param rcvr [in] レシーバ 198 * @param name [in] 例外シンボル 199 * @param data [in] 例外データ 200 200 * 201 201 * @retval NIL 202 202 * 203 * @note XNvg©çÌÄoµp203 * @note スクリプトからの呼出し用 204 204 */ 205 205 … … 212 212 213 213 /*------------------------------------------------------------------------*/ 214 /** rethrow ·é215 * 216 * @param rcvr [in] V[o214 /** rethrow する 215 * 216 * @param rcvr [in] レシーバ 217 217 * 218 218 * @retval NIL 219 219 * 220 * @note XNvg©çÌÄoµp220 * @note スクリプトからの呼出し用 221 221 */ 222 222 … … 229 229 230 230 /*------------------------------------------------------------------------*/ 231 /** IuWFNgðN[¡»·é232 * 233 * @param r [in] IuWFNg234 * 235 * @return N[¡»³ê½IuWFNg231 /** オブジェクトをクローン複製する 232 * 233 * @param r [in] オブジェクト 234 * 235 * @return クローン複製されたオブジェクト 236 236 */ 237 237 … … 246 246 247 247 /*------------------------------------------------------------------------*/ 248 /** IuWFNgÌ[¢N[¡»ð·éi}WbN|C^ÍÇյȢj249 * 250 * @param rcvr [in] V[o251 * @param r [in] IuWFNg252 * 253 * @return N[¡»³ê½IuWFNg248 /** オブジェクトの深いクローン複製をする(マジックポインタは追跡しない) 249 * 250 * @param rcvr [in] レシーバ 251 * @param r [in] オブジェクト 252 * 253 * @return クローン複製されたオブジェクト 254 254 */ 255 255 … … 280 280 281 281 /*------------------------------------------------------------------------*/ 282 /** IuWFNgÌ·³ðæ¾283 * 284 * @param r [in] IuWFNg285 * 286 * @return IuWFNgÌ·³287 * 288 * @note XNvg©çÌÄoµp282 /** オブジェクトの長さを取得 283 * 284 * @param r [in] オブジェクト 285 * 286 * @return オブジェクトの長さ 287 * 288 * @note スクリプトからの呼出し用 289 289 */ 290 290 … … 296 296 297 297 /*------------------------------------------------------------------------*/ 298 /** IuWFNgÌi[¢j·³ðæ¾299 * 300 * @param rcvr [in] V[o301 * @param r [in] IuWFNg302 * 303 * @return IuWFNgÌ·³304 * 305 * @note t[ÌêÍvgp³Å·³ðvZ·é306 * XNvg©çÌÄoµp298 /** オブジェクトの(深い)長さを取得 299 * 300 * @param rcvr [in] レシーバ 301 * @param r [in] オブジェクト 302 * 303 * @return オブジェクトの長さ 304 * 305 * @note フレームの場合はプロト継承で長さを計算する 306 * スクリプトからの呼出し用 307 307 */ 308 308 … … 314 314 315 315 /*------------------------------------------------------------------------*/ 316 /** IuWFNgÌi[¢j·³ðæ¾317 * 318 * @param rcvr [in] V[o319 * @param r [in] IuWFNg320 * @param len [in] ·³321 * 322 * @return IuWFNgÌ·³323 * 324 * @note t[ÌêÍvgp³Å·³ðvZ·é325 * XNvg©çÌÄoµp316 /** オブジェクトの(深い)長さを取得 317 * 318 * @param rcvr [in] レシーバ 319 * @param r [in] オブジェクト 320 * @param len [in] 長さ 321 * 322 * @return オブジェクトの長さ 323 * 324 * @note フレームの場合はプロト継承で長さを計算する 325 * スクリプトからの呼出し用 326 326 */ 327 327 … … 361 361 362 362 /*------------------------------------------------------------------------*/ 363 /** t[àÌXbgÌL³ð²×é364 * 365 * @param rcvr [in] V[o366 * @param frame [in] t[367 * @param slot [in] XbgV{368 * 369 * @retval TRUE Xbgª¶Ý·é370 * @retval NIL Xbgª¶ÝµÈ¢371 * 372 * @note XNvg©çÌÄoµp363 /** フレーム内のスロットの有無を調べる 364 * 365 * @param rcvr [in] レシーバ 366 * @param frame [in] フレーム 367 * @param slot [in] スロットシンボル 368 * 369 * @retval TRUE スロットが存在する 370 * @retval NIL スロットが存在しない 371 * 372 * @note スクリプトからの呼出し用 373 373 */ 374 374 … … 380 380 381 381 /*------------------------------------------------------------------------*/ 382 /** t[©çXbgÌlðæ¾383 * 384 * @param rcvr [in] V[o385 * @param frame [in] t[386 * @param slot [in] XbgV{387 * 388 * @return XbgÌl382 /** フレームからスロットの値を取得 383 * 384 * @param rcvr [in] レシーバ 385 * @param frame [in] フレーム 386 * @param slot [in] スロットシンボル 387 * 388 * @return スロットの値 389 389 */ 390 390 … … 403 403 404 404 /*------------------------------------------------------------------------*/ 405 /** t[ÉXbgÌlðZbg·é406 * 407 * @param rcvr [in] V[o408 * @param frame [in] t[409 * @param slot [in] XbgV{410 * @param v [in] lIuWFNg411 * 412 * @return lIuWFNg405 /** フレームにスロットの値をセットする 406 * 407 * @param rcvr [in] レシーバ 408 * @param frame [in] フレーム 409 * @param slot [in] スロットシンボル 410 * @param v [in] 値オブジェクト 411 * 412 * @return 値オブジェクト 413 413 */ 414 414 … … 432 432 433 433 /*------------------------------------------------------------------------*/ 434 /** t[©çXbgðí·é435 * 436 * @param rcvr [in] V[o437 * @param frame [in] t[438 * @param slot [in] XbgV{439 * 440 * @return t[434 /** フレームからスロットを削除する 435 * 436 * @param rcvr [in] レシーバ 437 * @param frame [in] フレーム 438 * @param slot [in] スロットシンボル 439 * 440 * @return フレーム 441 441 */ 442 442 … … 453 453 454 454 /*------------------------------------------------------------------------*/ 455 /** zñÉlðZbg·é456 * 457 * @param r [in] zñIuWFNg458 * @param p [in] Êu459 * @param v [in] lIuWFNg460 * 461 * @return lIuWFNg455 /** 配列に値をセットする 456 * 457 * @param r [in] 配列オブジェクト 458 * @param p [in] 位置 459 * @param v [in] 値オブジェクト 460 * 461 * @return 値オブジェクト 462 462 */ 463 463 … … 472 472 473 473 /*------------------------------------------------------------------------*/ 474 /** IuWFNgàÌANZXpXÌL³ð²×é475 * 476 * @param r [in] IuWFNg477 * @param p [in] ANZXpX478 * 479 * @retval TRUE ANZXpXª¶Ý·é480 * @retval NIL ANZXpXª¶ÝµÈ¢481 * 482 * @note XNvg©çÌÄoµp474 /** オブジェクト内のアクセスパスの有無を調べる 475 * 476 * @param r [in] オブジェクト 477 * @param p [in] アクセスパス 478 * 479 * @retval TRUE アクセスパスが存在する 480 * @retval NIL アクセスパスが存在しない 481 * 482 * @note スクリプトからの呼出し用 483 483 */ 484 484 … … 490 490 491 491 /*------------------------------------------------------------------------*/ 492 /** IuWFNgÌANZXpXÌlðæ¾493 * 494 * @param r [in] IuWFNg495 * @param p [in] ANZXpX496 * 497 * @return lIuWFNg498 * 499 * @note XNvg©çÌÄoµp492 /** オブジェクトのアクセスパスの値を取得 493 * 494 * @param r [in] オブジェクト 495 * @param p [in] アクセスパス 496 * 497 * @return 値オブジェクト 498 * 499 * @note スクリプトからの呼出し用 500 500 */ 501 501 … … 507 507 508 508 /*------------------------------------------------------------------------*/ 509 /** IuWFNgÌANZXpXÉlðZbg·é510 * 511 * @param r [in] IuWFNg512 * @param p [in] ANZXpX513 * @param v [in] lIuWFNg514 * 515 * @return lIuWFNg509 /** オブジェクトのアクセスパスに値をセットする 510 * 511 * @param r [in] オブジェクト 512 * @param p [in] アクセスパス 513 * @param v [in] 値オブジェクト 514 * 515 * @return 値オブジェクト 516 516 */ 517 517 … … 534 534 535 535 /*------------------------------------------------------------------------*/ 536 /** IuWFNgÌwè³ê½Êu©çlðæ¾537 * 538 * @param r [in] IuWFNg539 * @param p [in] Êu540 * 541 * @return lIuWFNg542 * 543 * @note XNvg©çÌÄoµp536 /** オブジェクトの指定された位置から値を取得 537 * 538 * @param r [in] オブジェクト 539 * @param p [in] 位置 540 * 541 * @return 値オブジェクト 542 * 543 * @note スクリプトからの呼出し用 544 544 */ 545 545 … … 554 554 555 555 /*------------------------------------------------------------------------*/ 556 /** IuWFNgÌwè³ê½ÊuÉlðZbg·é557 * 558 * @param r [in] IuWFNg559 * @param p [in] Êu560 * @param v [in] lIuWFNg561 * 562 * @return lIuWFNg563 * 564 * @note XNvg©çÌÄoµp556 /** オブジェクトの指定された位置に値をセットする 557 * 558 * @param r [in] オブジェクト 559 * @param p [in] 位置 560 * @param v [in] 値オブジェクト 561 * 562 * @return 値オブジェクト 563 * 564 * @note スクリプトからの呼出し用 565 565 */ 566 566 … … 575 575 576 576 /*------------------------------------------------------------------------*/ 577 /** vgEyAgp³Åt[àÌXbgÌL³ð²×é578 * 579 * @param rcvr [in] V[o580 * @param r [in] t[581 * @param name [in] XbgV{582 * 583 * @retval TRUE Xbgª¶Ý·é584 * @retval NIL Xbgª¶ÝµÈ¢585 * 586 * @note XNvg©çÌÄoµp577 /** プロト・ペアレント継承でフレーム内のスロットの有無を調べる 578 * 579 * @param rcvr [in] レシーバ 580 * @param r [in] フレーム 581 * @param name [in] スロットシンボル 582 * 583 * @retval TRUE スロットが存在する 584 * @retval NIL スロットが存在しない 585 * 586 * @note スクリプトからの呼出し用 587 587 */ 588 588 … … 594 594 595 595 /*------------------------------------------------------------------------*/ 596 /** vgEyAgp³Åt[©çXbgÌlðæ¾597 * 598 * @param rcvr [in] V[o599 * @param frame [in] t[600 * @param slot [in] XbgV{601 * 602 * @return XbgÌl603 * 604 * @note XNvg©çÌÄoµp596 /** プロト・ペアレント継承でフレームからスロットの値を取得 597 * 598 * @param rcvr [in] レシーバ 599 * @param frame [in] フレーム 600 * @param slot [in] スロットシンボル 601 * 602 * @return スロットの値 603 * 604 * @note スクリプトからの呼出し用 605 605 */ 606 606 … … 612 612 613 613 /*------------------------------------------------------------------------*/ 614 /** vgEyAgp³Åt[©çXbgÌlðæ¾615 * 616 * @param rcvr [in] V[o617 * @param frame [in] t[618 * @param slot [in] XbgV{619 * @param v [in] lIuWFNg620 * 621 * @return lIuWFNg622 * 623 * @note XNvg©çÌÄoµp614 /** プロト・ペアレント継承でフレームからスロットの値を取得 615 * 616 * @param rcvr [in] レシーバ 617 * @param frame [in] フレーム 618 * @param slot [in] スロットシンボル 619 * @param v [in] 値オブジェクト 620 * 621 * @return 値オブジェクト 622 * 623 * @note スクリプトからの呼出し用 624 624 */ 625 625 … … 634 634 635 635 /*------------------------------------------------------------------------*/ 636 /** ÏÌL³ð²×é637 * 638 * @param rcvr [in] V[o639 * @param name [in] ϼV{640 * 641 * @retval TRUE Xbgª¶Ý·é642 * @retval NIL Xbgª¶ÝµÈ¢643 * 644 * @note XNvg©çÌÄoµp636 /** 変数の有無を調べる 637 * 638 * @param rcvr [in] レシーバ 639 * @param name [in] 変数名シンボル 640 * 641 * @retval TRUE スロットが存在する 642 * @retval NIL スロットが存在しない 643 * 644 * @note スクリプトからの呼出し用 645 645 */ 646 646 … … 653 653 #pragma mark - 654 654 /*------------------------------------------------------------------------*/ 655 /** IuWFNg^CvðηéNXV{ÉÏ··é656 * 657 * @param type [in] IuWFNg^Cv658 * 659 * @return NXV{655 /** オブジェクトタイプを対応するクラスシンボルに変換する 656 * 657 * @param type [in] オブジェクトタイプ 658 * 659 * @return クラスシンボル 660 660 */ 661 661 … … 715 715 716 716 /*------------------------------------------------------------------------*/ 717 /** IuWFNgÌNXV{ðæ¾718 * 719 * @param r [in] IuWFNg720 * 721 * @return NXV{717 /** オブジェクトのクラスシンボルを取得 718 * 719 * @param r [in] オブジェクト 720 * 721 * @return クラスシンボル 722 722 */ 723 723 … … 755 755 756 756 /*------------------------------------------------------------------------*/ 757 /** IuWFNgÌNXV{ðZbg·é758 * 759 * @param r [in] IuWFNg760 * @param c [in] NXV{761 * 762 * @return IuWFNg757 /** オブジェクトのクラスシンボルをセットする 758 * 759 * @param r [in] オブジェクト 760 * @param c [in] クラスシンボル 761 * 762 * @return オブジェクト 763 763 */ 764 764 … … 792 792 793 793 /*------------------------------------------------------------------------*/ 794 /** IuWFNgÌv~eBuNXðæ¾795 * 796 * @param rcvr [in] V[o797 * @param r [in] IuWFNg798 * 799 * @return v~eBuNX794 /** オブジェクトのプリミティブクラスを取得 795 * 796 * @param rcvr [in] レシーバ 797 * @param r [in] オブジェクト 798 * 799 * @return プリミティブクラス 800 800 */ 801 801 … … 831 831 832 832 /*------------------------------------------------------------------------*/ 833 /** IuWFNgÌNXV{ðæ¾834 * 835 * @param r [in] IuWFNg836 * 837 * @return NXV{833 /** オブジェクトのクラスシンボルを取得 834 * 835 * @param r [in] オブジェクト 836 * 837 * @return クラスシンボル 838 838 */ 839 839 … … 848 848 849 849 /*------------------------------------------------------------------------*/ 850 /** IuWFNgÌNXV{ðZbg·é851 * 852 * @param r [in] IuWFNg853 * @param c [in] NXV{854 * 855 * @retval IuWFNg NXV{ðZbgÅ«½ê856 * @retval NIL NXV{ðZbgūȩÁ½ê850 /** オブジェクトのクラスシンボルをセットする 851 * 852 * @param r [in] オブジェクト 853 * @param c [in] クラスシンボル 854 * 855 * @retval オブジェクト クラスシンボルをセットできた場合 856 * @retval NIL クラスシンボルをセットできなかった場合 857 857 */ 858 858 … … 867 867 868 868 /*------------------------------------------------------------------------*/ 869 /** QÆÌär870 * 871 * @param r1 [in] QÆP872 * @param r2 [in] QÆQ873 * 874 * @retval TRUE ¯l875 * @retval NIL ¯lÅÈ¢876 * 877 * @note XNvg©çÌÄoµp869 /** 参照の比較 870 * 871 * @param r1 [in] 参照1 872 * @param r2 [in] 参照2 873 * 874 * @retval TRUE 同値 875 * @retval NIL 同値でない 876 * 877 * @note スクリプトからの呼出し用 878 878 */ 879 879 … … 885 885 886 886 /*------------------------------------------------------------------------*/ 887 /** IuWFNgÌär888 * 889 * @param rcvr [in] V[o890 * @param r1 [in] IuWFNgP891 * @param r2 [in] IuWFNgQ892 * 893 * @retval TRUE ¯l894 * @retval NIL ¯lÅÈ¢895 * 896 * @note XNvg©çÌÄoµp887 /** オブジェクトの比較 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 スクリプトからの呼出し用 897 897 */ 898 898 … … 904 904 905 905 /*------------------------------------------------------------------------*/ 906 /** V{ðåIÉäri嶬¶ÍæÊ³êÈ¢j907 * 908 * @param rcvr [in] V[o909 * @param r1 [in] V{P910 * @param r2 [in] V{Q911 * 912 * @retval Ì®r1 < r2906 /** シンボルを字句的に比較(大文字小文字は区別されない) 907 * 908 * @param rcvr [in] レシーバ 909 * @param r1 [in] シンボル1 910 * @param r2 [in] シンボル2 911 * 912 * @retval 負の整数 r1 < r2 913 913 * @retval 0 r1 = r2 914 * @retval ³Ì®r1 > r2915 * 916 * @note XNvg©çÌÄoµp914 * @retval 正の整数 r1 > r2 915 * 916 * @note スクリプトからの呼出し用 917 917 */ 918 918 … … 930 930 931 931 /*------------------------------------------------------------------------*/ 932 /** sub ª supr ÌTuNXðÜÞ©`FbN·é933 * 934 * @param rcvr [in] V[o935 * @param sub [in] V{IuWFNgP936 * @param supr [in] V{IuWFNgQ937 * 938 * @retval TRUE TuNXðÜÞ939 * @retval NIL TuNXðÜÜÈ¢940 * 941 * @note XNvg©çÌÄoµp932 /** 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 スクリプトからの呼出し用 942 942 */ 943 943 … … 949 949 950 950 /*------------------------------------------------------------------------*/ 951 /** sub ª supr ÌTuNX©`FbN·é952 * 953 * @param rcvr [in] V[o954 * @param sub [in] V{IuWFNgP955 * @param supr [in] V{IuWFNgQ956 * 957 * @retval TRUE TuNXÅ é958 * @retval NIL TuNXÅÈ¢959 * 960 * @note XNvg©çÌÄoµp951 /** 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 スクリプトからの呼出し用 961 961 */ 962 962 … … 968 968 969 969 /*------------------------------------------------------------------------*/ 970 /** obj ª r ÌCX^X©`FbN·é971 * 972 * @param rcvr [in] V[o973 * @param obj [in] IuWFNg974 * @param r [in] NXV{975 * 976 * @retval TRUE CX^XÅ é977 * @retval NIL CX^XÅÈ¢978 * 979 * @note XNvg©çÌÄoµp970 /** 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 スクリプトからの呼出し用 980 980 */ 981 981 … … 988 988 #pragma mark - 989 989 /*------------------------------------------------------------------------*/ 990 /** r ªzñ©`FbN·é991 * 992 * @param rcvr [in] V[o993 * @param r [in] IuWFNg994 * 995 * @retval TRUE zñÅ é996 * @retval NIL zñÅÈ¢997 * 998 * @note XNvg©çÌÄoµp990 /** r が配列かチェックする 991 * 992 * @param rcvr [in] レシーバ 993 * @param r [in] オブジェクト 994 * 995 * @retval TRUE 配列である 996 * @retval NIL 配列でない 997 * 998 * @note スクリプトからの呼出し用 999 999 */ 1000 1000 … … 1006 1006 1007 1007 /*------------------------------------------------------------------------*/ 1008 /** r ªt[©`FbN·é1009 * 1010 * @param rcvr [in] V[o1011 * @param r [in] IuWFNg1012 * 1013 * @retval TRUE t[Å é1014 * @retval NIL t[ÅÈ¢1015 * 1016 * @note XNvg©çÌÄoµp1008 /** r がフレームかチェックする 1009 * 1010 * @param rcvr [in] レシーバ 1011 * @param r [in] オブジェクト 1012 * 1013 * @retval TRUE フレームである 1014 * @retval NIL フレームでない 1015 * 1016 * @note スクリプトからの呼出し用 1017 1017 */ 1018 1018 … … 1024 1024 1025 1025 /*------------------------------------------------------------------------*/ 1026 /** r ªoCi©`FbN·é1027 * 1028 * @param rcvr [in] V[o1029 * @param r [in] IuWFNg1030 * 1031 * @retval TRUE oCiÅ é1032 * @retval NIL oCiÅÈ¢1033 * 1034 * @note XNvg©çÌÄoµp1026 /** r がバイナリかチェックする 1027 * 1028 * @param rcvr [in] レシーバ 1029 * @param r [in] オブジェクト 1030 * 1031 * @retval TRUE バイナリである 1032 * @retval NIL バイナリでない 1033 * 1034 * @note スクリプトからの呼出し用 1035 1035 */ 1036 1036 … … 1042 1042 1043 1043 /*------------------------------------------------------------------------*/ 1044 /** r ªV{©`FbN·é1045 * 1046 * @param rcvr [in] V[o1047 * @param r [in] IuWFNg1048 * 1049 * @retval TRUE V{Å é1050 * @retval NIL V{ÅÈ¢1051 * 1052 * @note XNvg©çÌÄoµp1044 /** r がシンボルかチェックする 1045 * 1046 * @param rcvr [in] レシーバ 1047 * @param r [in] オブジェクト 1048 * 1049 * @retval TRUE シンボルである 1050 * @retval NIL シンボルでない 1051 * 1052 * @note スクリプトからの呼出し用 1053 1053 */ 1054 1054 … … 1060 1060 1061 1061 /*------------------------------------------------------------------------*/ 1062 /** r ª¶ñ©`FbN·é1063 * 1064 * @param rcvr [in] V[o1065 * @param r [in] IuWFNg1066 * 1067 * @retval TRUE ¶ñÅ é1068 * @retval NIL ¶ñÅÈ¢1069 * 1070 * @note XNvg©çÌÄoµp1062 /** r が文字列かチェックする 1063 * 1064 * @param rcvr [in] レシーバ 1065 * @param r [in] オブジェクト 1066 * 1067 * @retval TRUE 文字列である 1068 * @retval NIL 文字列でない 1069 * 1070 * @note スクリプトからの呼出し用 1071 1071 */ 1072 1072 … … 1078 1078 1079 1079 /*------------------------------------------------------------------------*/ 1080 /** r ª¶©`FbN·é1081 * 1082 * @param rcvr [in] V[o1083 * @param r [in] IuWFNg1084 * 1085 * @retval TRUE ¶Å é1086 * @retval NIL ¶ÅÈ¢1087 * 1088 * @note XNvg©çÌÄoµp1080 /** r が文字かチェックする 1081 * 1082 * @param rcvr [in] レシーバ 1083 * @param r [in] オブジェクト 1084 * 1085 * @retval TRUE 文字である 1086 * @retval NIL 文字でない 1087 * 1088 * @note スクリプトからの呼出し用 1089 1089 */ 1090 1090 … … 1096 1096 1097 1097 /*------------------------------------------------------------------------*/ 1098 /** r ª®©`FbN·é1099 * 1100 * @param rcvr [in] V[o1101 * @param r [in] IuWFNg1102 * 1103 * @retval TRUE ®Å é1104 * @retval NIL ®ÅÈ¢1105 * 1106 * @note XNvg©çÌÄoµp1098 /** r が整数かチェックする 1099 * 1100 * @param rcvr [in] レシーバ 1101 * @param r [in] オブジェクト 1102 * 1103 * @retval TRUE 整数である 1104 * @retval NIL 整数でない 1105 * 1106 * @note スクリプトからの呼出し用 1107 1107 */ 1108 1108 … … 1114 1114 1115 1115 /*------------------------------------------------------------------------*/ 1116 /** r ª®¬_©`FbN·é1117 * 1118 * @param rcvr [in] V[o1119 * @param r [in] IuWFNg1120 * 1121 * @retval TRUE ®¬_Å é1122 * @retval NIL ®¬_ÅÈ¢1123 * 1124 * @note XNvg©çÌÄoµp1116 /** r が浮動小数点数かチェックする 1117 * 1118 * @param rcvr [in] レシーバ 1119 * @param r [in] オブジェクト 1120 * 1121 * @retval TRUE 浮動小数点数である 1122 * @retval NIL 浮動小数点数でない 1123 * 1124 * @note スクリプトからの呼出し用 1125 1125 */ 1126 1126 … … 1132 1132 1133 1133 /*------------------------------------------------------------------------*/ 1134 /** r ªlf[^©`FbN·é1135 * 1136 * @param rcvr [in] V[o1137 * @param r [in] IuWFNg1138 * 1139 * @retval TRUE lf[^Å é1140 * @retval NIL lf[^ÅÈ¢1134 /** r が数値データかチェックする 1135 * 1136 * @param rcvr [in] レシーバ 1137 * @param r [in] オブジェクト 1138 * 1139 * @retval TRUE 数値データである 1140 * @retval NIL 数値データでない 1141 1141 */ 1142 1142 … … 1148 1148 1149 1149 /*------------------------------------------------------------------------*/ 1150 /** r ªC~fBGCgi¦lj©`FbN·é1151 * 1152 * @param rcvr [in] V[o1153 * @param r [in] IuWFNg1154 * 1155 * @retval TRUE C~fBGCgÅ é1156 * @retval NIL C~fBGCgÅÈ¢1150 /** r がイミディエイト(即値)かチェックする 1151 * 1152 * @param rcvr [in] レシーバ 1153 * @param r [in] オブジェクト 1154 * 1155 * @retval TRUE イミディエイトである 1156 * @retval NIL イミディエイトでない 1157 1157 */ 1158 1158 … … 1164 1164 1165 1165 /*------------------------------------------------------------------------*/ 1166 /** r ªÖIuWFNg©`FbN·é1167 * 1168 * @param rcvr [in] V[o1169 * @param r [in] IuWFNg1170 * 1171 * @retval TRUE ÖIuWFNgÅ é1172 * @retval NIL ÖIuWFNgÅÈ¢1166 /** r が関数オブジェクトかチェックする 1167 * 1168 * @param rcvr [in] レシーバ 1169 * @param r [in] オブジェクト 1170 * 1171 * @retval TRUE 関数オブジェクトである 1172 * @retval NIL 関数オブジェクトでない 1173 1173 */ 1174 1174 … … 1180 1180 1181 1181 /*------------------------------------------------------------------------*/ 1182 /** r ª[hI[©`FbN·é1183 * 1184 * @param rcvr [in] V[o1185 * @param r [in] IuWFNg1186 * 1187 * @retval TRUE [hI[Å é1188 * @retval NIL [hI[ÅÈ¢1182 /** r がリードオンリーかチェックする 1183 * 1184 * @param rcvr [in] レシーバ 1185 * @param r [in] オブジェクト 1186 * 1187 * @retval TRUE リードオンリーである 1188 * @retval NIL リードオンリーでない 1189 1189 */ 1190 1190 … … 1197 1197 #pragma mark - 1198 1198 /*------------------------------------------------------------------------*/ 1199 /** zñIuWFNgÉlðÇÁ·é1200 * 1201 * @param r [in] zñIuWFNg1202 * @param v [in] lIuWFNg1203 * 1204 * @return lIuWFNg1199 /** 配列オブジェクトに値を追加する 1200 * 1201 * @param r [in] 配列オブジェクト 1202 * @param v [in] 値オブジェクト 1203 * 1204 * @return 値オブジェクト 1205 1205 */ 1206 1206 … … 1219 1219 1220 1220 /*------------------------------------------------------------------------*/ 1221 /** zñIuWFNgÌvfð¶ñɬ·é1222 * 1223 * @param r [in] zñIuWFNg1224 * 1225 * @return ¶ñIuWFNg1221 /** 配列オブジェクトの要素を文字列に合成する 1222 * 1223 * @param r [in] 配列オブジェクト 1224 * 1225 * @return 文字列オブジェクト 1226 1226 */ 1227 1227 … … 1251 1251 1252 1252 /*------------------------------------------------------------------------*/ 1253 /** ¶ñIuWFNgÌÅãÉIuWFNgð¶ñ»µÄÇÁ·é1254 * 1255 * @param rcvr [in] V[o1256 * @param str [in] ¶ñIuWFNg1257 * @param v [in] IuWFNg1258 * 1259 * @return ¶ñIuWFNg1253 /** 文字列オブジェクトの最後にオブジェクトを文字列化して追加する 1254 * 1255 * @param rcvr [in] レシーバ 1256 * @param str [in] 文字列オブジェクト 1257 * @param v [in] オブジェクト 1258 * 1259 * @return 文字列オブジェクト 1260 1260 */ 1261 1261 … … 1320 1320 1321 1321 /*------------------------------------------------------------------------*/ 1322 /** ¶ñIuWFNg©çV{ð쬷é1323 * 1324 * @param rcvr [in] V[o1325 * @param r [in] ¶ñIuWFNg1326 * 1327 * @return V{IuWFNg1322 /** 文字列オブジェクトからシンボルを作成する 1323 * 1324 * @param rcvr [in] レシーバ 1325 * @param r [in] 文字列オブジェクト 1326 * 1327 * @return シンボルオブジェクト 1328 1328 */ 1329 1329 … … 1342 1342 1343 1343 /*------------------------------------------------------------------------*/ 1344 /** t[IuWFNgð쬷é1345 * 1346 * @param rcvr [in] V[o1347 * 1348 * @return t[IuWFNg1344 /** フレームオブジェクトを作成する 1345 * 1346 * @param rcvr [in] レシーバ 1347 * 1348 * @return フレームオブジェクト 1349 1349 */ 1350 1350 … … 1356 1356 1357 1357 /*------------------------------------------------------------------------*/ 1358 /** oCiIuWFNgð쬷é1359 * 1360 * @param rcvr [in] V[o1361 * @param length [in] ·³1362 * @param klass [in] NX1363 * 1364 * @return oCiIuWFNg1358 /** バイナリオブジェクトを作成する 1359 * 1360 * @param rcvr [in] レシーバ 1361 * @param length [in] 長さ 1362 * @param klass [in] クラス 1363 * 1364 * @return バイナリオブジェクト 1365 1365 */ 1366 1366 … … 1376 1376 #pragma mark - 1377 1377 /*------------------------------------------------------------------------*/ 1378 /** ®ÌrbgAND1379 * 1380 * @param r1 [in] ®IuWFNgP1381 * @param r2 [in] ®IuWFNgQ1382 * 1383 * @return lIuWFNg1378 /** 整数のビットAND 1379 * 1380 * @param r1 [in] 整数オブジェクト1 1381 * @param r2 [in] 整数オブジェクト2 1382 * 1383 * @return 数値オブジェクト 1384 1384 */ 1385 1385 … … 1397 1397 1398 1398 /*------------------------------------------------------------------------*/ 1399 /** ®ÌrbgOR1400 * 1401 * @param r1 [in] ®IuWFNgP1402 * @param r2 [in] ®IuWFNgQ1403 * 1404 * @return lIuWFNg1399 /** 整数のビットOR 1400 * 1401 * @param r1 [in] 整数オブジェクト1 1402 * @param r2 [in] 整数オブジェクト2 1403 * 1404 * @return 数値オブジェクト 1405 1405 */ 1406 1406 … … 1418 1418 1419 1419 /*------------------------------------------------------------------------*/ 1420 /** ®ÌrbgNOT1421 * 1422 * @param r [in] ®IuWFNg1423 * 1424 * @return lIuWFNg1420 /** 整数のビットNOT 1421 * 1422 * @param r [in] 整数オブジェクト 1423 * 1424 * @return 数値オブジェクト 1425 1425 */ 1426 1426 … … 1436 1436 #pragma mark - 1437 1437 /*------------------------------------------------------------------------*/ 1438 /** u[ZAND1439 * 1440 * @param rcvr [in] V[o1441 * @param r1 [in] IuWFNgP1442 * @param r2 [in] IuWFNgQ1438 /** ブール演算 AND 1439 * 1440 * @param rcvr [in] レシーバ 1441 * @param r1 [in] オブジェクト1 1442 * @param r2 [in] オブジェクト2 1443 1443 * 1444 1444 * @retval TRUE … … 1457 1457 1458 1458 /*------------------------------------------------------------------------*/ 1459 /** u[ZOR1460 * 1461 * @param rcvr [in] V[o1462 * @param r1 [in] IuWFNgP1463 * @param r2 [in] IuWFNgQ1459 /** ブール演算 OR 1460 * 1461 * @param rcvr [in] レシーバ 1462 * @param r1 [in] オブジェクト1 1463 * @param r2 [in] オブジェクト2 1464 1464 * 1465 1465 * @retval TRUE … … 1479 1479 #pragma mark - 1480 1480 /*------------------------------------------------------------------------*/ 1481 /** løÌ`FbN1482 * 1483 * @param r1 [in] IuWFNgP1484 * @param r2 [in] IuWFNgQ1485 * @param real [out] ®¬_ðÜÞ1486 * 1487 * @retval true øªl1488 * @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 引数が数値でない 1489 1489 */ 1490 1490 … … 1519 1519 1520 1520 /*------------------------------------------------------------------------*/ 1521 /** ÁZ(r1 + r2)1522 * 1523 * @param r1 [in] lIuWFNgP1524 * @param r2 [in] lIuWFNgQ1525 * 1526 * @return lIuWFNg1521 /** 加算(r1 + r2) 1522 * 1523 * @param r1 [in] 数値オブジェクト1 1524 * @param r2 [in] 数値オブジェクト2 1525 * 1526 * @return 数値オブジェクト 1527 1527 */ 1528 1528 … … 1558 1558 1559 1559 /*------------------------------------------------------------------------*/ 1560 /** ¸Z(r1 - r2)1561 * 1562 * @param r1 [in] lIuWFNgP1563 * @param r2 [in] lIuWFNgQ1564 * 1565 * @return lIuWFNg1560 /** 減算(r1 - r2) 1561 * 1562 * @param r1 [in] 数値オブジェクト1 1563 * @param r2 [in] 数値オブジェクト2 1564 * 1565 * @return 数値オブジェクト 1566 1566 */ 1567 1567 … … 1597 1597 1598 1598 /*------------------------------------------------------------------------*/ 1599 /** æZ(r1 x r2)1600 * 1601 * @param r1 [in] lIuWFNgP1602 * @param r2 [in] lIuWFNgQ1603 * 1604 * @return lIuWFNg1599 /** 乗算(r1 x r2) 1600 * 1601 * @param r1 [in] 数値オブジェクト1 1602 * @param r2 [in] 数値オブジェクト2 1603 * 1604 * @return 数値オブジェクト 1605 1605 */ 1606 1606 … … 1636 1636 1637 1637 /*------------------------------------------------------------------------*/ 1638 /** Z(r1 / r2)1639 * 1640 * @param r1 [in] lIuWFNgP1641 * @param r2 [in] lIuWFNgQ1642 * 1643 * @return lIuWFNg1638 /** 割算(r1 / r2) 1639 * 1640 * @param r1 [in] 数値オブジェクト1 1641 * @param r2 [in] 数値オブジェクト2 1642 * 1643 * @return 数値オブジェクト 1644 1644 */ 1645 1645 … … 1681 1681 1682 1682 /*------------------------------------------------------------------------*/ 1683 /** ®ÌZ(r1 / r2)1684 * 1685 * @param r1 [in] ®IuWFNgP1686 * @param r2 [in] ®IuWFNgQ1687 * 1688 * @return ®IuWFNg1683 /** 整数の割算(r1 / r2) 1684 * 1685 * @param r1 [in] 整数オブジェクト1 1686 * @param r2 [in] 整数オブジェクト2 1687 * 1688 * @return 整数オブジェクト 1689 1689 */ 1690 1690 … … 1702 1702 1703 1703 /*------------------------------------------------------------------------*/ 1704 /** r1 ð r2 ÅÁ½Ì]èðvZ1705 * 1706 * @param rcvr [in] V[o1707 * @param r1 [in] ®IuWFNgP1708 * @param r2 [in] ®IuWFNgQ1709 * 1710 * @return ®IuWFNg1704 /** r1 を r2 で割ったの余りを計算 1705 * 1706 * @param rcvr [in] レシーバ 1707 * @param r1 [in] 整数オブジェクト1 1708 * @param r2 [in] 整数オブジェクト2 1709 * 1710 * @return 整数オブジェクト 1711 1711 */ 1712 1712 … … 1724 1724 1725 1725 /*------------------------------------------------------------------------*/ 1726 /** rbgVtg(r1 << r2)1727 * 1728 * @param rcvr [in] V[o1729 * @param r1 [in] ®IuWFNgP1730 * @param r2 [in] ®IuWFNgQ1731 * 1732 * @return ®IuWFNg1726 /** ビットシフト(r1 << r2) 1727 * 1728 * @param rcvr [in] レシーバ 1729 * @param r1 [in] 整数オブジェクト1 1730 * @param r2 [in] 整数オブジェクト2 1731 * 1732 * @return 整数オブジェクト 1733 1733 */ 1734 1734 … … 1746 1746 1747 1747 /*------------------------------------------------------------------------*/ 1748 /** rbgVtg(r1 >> r2)1749 * 1750 * @param rcvr [in] V[o1751 * @param r1 [in] ®IuWFNgP1752 * @param r2 [in] ®IuWFNgQ1753 * 1754 * @return ®IuWFNg1748 /** ビットシフト(r1 >> r2) 1749 * 1750 * @param rcvr [in] レシーバ 1751 * @param r1 [in] 整数オブジェクト1 1752 * @param r2 [in] 整数オブジェクト2 1753 * 1754 * @return 整数オブジェクト 1755 1755 */ 1756 1756 … … 1769 1769 #pragma mark - 1770 1770 /*------------------------------------------------------------------------*/ 1771 /** IuWFNgÌå¬är(r1 < r2)1772 * 1773 * @param r1 [in] IuWFNgP1774 * @param r2 [in] IuWFNgQ1771 /** オブジェクトの大小比較(r1 < r2) 1772 * 1773 * @param r1 [in] オブジェクト1 1774 * @param r2 [in] オブジェクト2 1775 1775 * 1776 1776 * @retval TRUE 1777 1777 * @retval NIL 1778 1778 * 1779 * @note XNvgÌÄoµp1779 * @note スクリプトの呼出し用 1780 1780 */ 1781 1781 … … 1787 1787 1788 1788 /*------------------------------------------------------------------------*/ 1789 /** IuWFNgÌå¬är(r1 > r2)1790 * 1791 * @param r1 [in] IuWFNgP1792 * @param r2 [in] IuWFNgQ1789 /** オブジェクトの大小比較(r1 > r2) 1790 * 1791 * @param r1 [in] オブジェクト1 1792 * @param r2 [in] オブジェクト2 1793 1793 * 1794 1794 * @retval TRUE 1795 1795 * @retval NIL 1796 1796 * 1797 * @note XNvgÌÄoµp1797 * @note スクリプトの呼出し用 1798 1798 */ 1799 1799 … … 1805 1805 1806 1806 /*------------------------------------------------------------------------*/ 1807 /** IuWFNgÌå¬är(r1 >= r2)1808 * 1809 * @param r1 [in] IuWFNgP1810 * @param r2 [in] IuWFNgQ1807 /** オブジェクトの大小比較(r1 >= r2) 1808 * 1809 * @param r1 [in] オブジェクト1 1810 * @param r2 [in] オブジェクト2 1811 1811 * 1812 1812 * @retval TRUE 1813 1813 * @retval NIL 1814 1814 * 1815 * @note XNvgÌÄoµp1815 * @note スクリプトの呼出し用 1816 1816 */ 1817 1817 … … 1823 1823 1824 1824 /*------------------------------------------------------------------------*/ 1825 /** IuWFNgÌå¬är(r1 <= r2)1826 * 1827 * @param r1 [in] IuWFNgP1828 * @param r2 [in] IuWFNgQ1825 /** オブジェクトの大小比較(r1 <= r2) 1826 * 1827 * @param r1 [in] オブジェクト1 1828 * @param r2 [in] オブジェクト2 1829 1829 * 1830 1830 * @retval TRUE 1831 1831 * @retval NIL 1832 1832 * 1833 * @note XNvgÌÄoµp1833 * @note スクリプトの呼出し用 1834 1834 */ 1835 1835 … … 1842 1842 #pragma mark - 1843 1843 /*------------------------------------------------------------------------*/ 1844 /** ³K\»IuWFNgit[j̶¬1845 * 1846 * @param rcvr [in] V[o1847 * 1848 * @return áOt[1849 * 1850 * @note XNvg©çÌÄoµp1844 /** 正規表現オブジェクト(フレーム)の生成 1845 * 1846 * @param rcvr [in] レシーバ 1847 * 1848 * @return 例外フレーム 1849 * 1850 * @note スクリプトからの呼出し用 1851 1851 */ 1852 1852 … … 1859 1859 #ifdef __NAMED_MAGIC_POINTER__ 1860 1860 /*------------------------------------------------------------------------*/ 1861 /** ³K\»IuWFNgit[j̶¬1862 * 1863 * @param rcvr [in] V[o1864 * @param pattern [in] p^[¶ñ1865 * @param opt [in] IvV¶ñ1861 /** 正規表現オブジェクト(フレーム)の生成 1862 * 1863 * @param rcvr [in] レシーバ 1864 * @param pattern [in] パターン文字列 1865 * @param opt [in] オプション文字列 1866 1866 * 1867 1867 * @return NIL … … 1884 1884 #pragma mark - 1885 1885 /*------------------------------------------------------------------------*/ 1886 /** WoÍÉIuWFNgðvg1887 * 1888 * @param rcvr [in] V[o1889 * @param r [in] IuWFNg1886 /** 標準出力にオブジェクトをプリント 1887 * 1888 * @param rcvr [in] レシーバ 1889 * @param r [in] オブジェクト 1890 1890 * 1891 1891 * @return NIL 1892 1892 * 1893 * @note O[oÖp1893 * @note グローバル関数用 1894 1894 */ 1895 1895 … … 1902 1902 1903 1903 /*------------------------------------------------------------------------*/ 1904 /** WoÍÉIuWFNgðvg1905 * 1906 * @param rcvr [in] V[o1907 * @param r [in] IuWFNg1904 /** 標準出力にオブジェクトをプリント 1905 * 1906 * @param rcvr [in] レシーバ 1907 * @param r [in] オブジェクト 1908 1908 * 1909 1909 * @return NIL 1910 1910 * 1911 * @note XNvg©çÌÄoµp1911 * @note スクリプトからの呼出し用 1912 1912 */ 1913 1913 … … 1920 1920 1921 1921 /*------------------------------------------------------------------------*/ 1922 /** WoÍÉÖIuWFNgð_voÍ1923 * 1924 * @param rcvr [in] V[o1925 * @param r [in] ÖIuWFNg1922 /** 標準出力に関数オブジェクトをダンプ出力 1923 * 1924 * @param rcvr [in] レシーバ 1925 * @param r [in] 関数オブジェクト 1926 1926 * 1927 1927 * @return NIL 1928 1928 * 1929 * @note XNvg©çÌÄoµp1929 * @note スクリプトからの呼出し用 1930 1930 */ 1931 1931 … … 1938 1938 1939 1939 /*------------------------------------------------------------------------*/ 1940 /** WoÍÉoCgR[hð_voÍ1941 * 1942 * @param rcvr [in] V[o1943 * @param r [in] oCgR[h1940 /** 標準出力にバイトコードをダンプ出力 1941 * 1942 * @param rcvr [in] レシーバ 1943 * @param r [in] バイトコード 1944 1944 * 1945 1945 * @return NIL 1946 1946 * 1947 * @note XNvg©çÌÄoµp1947 * @note スクリプトからの呼出し用 1948 1948 */ 1949 1949 … … 1956 1956 1957 1957 /*------------------------------------------------------------------------*/ 1958 /** WoÍÉX^bNð_voÍ1959 * 1960 * @param rcvr [in] V[o1958 /** 標準出力にスタックをダンプ出力 1959 * 1960 * @param rcvr [in] レシーバ 1961 1961 * 1962 1962 * @return NIL 1963 1963 * 1964 * @note XNvg©çÌÄoµp1964 * @note スクリプトからの呼出し用 1965 1965 */ 1966 1966 … … 1973 1973 1974 1974 /*------------------------------------------------------------------------*/ 1975 /** WoÍÉÖîñð\¦1976 * 1977 * @param rcvr [in] V[o1978 * @param r [in] IuWFNg1975 /** 標準出力に関数情報を表示 1976 * 1977 * @param rcvr [in] レシーバ 1978 * @param r [in] オブジェクト 1979 1979 * 1980 1980 * @return NIL 1981 1981 * 1982 * @note XNvg©çÌÄoµp1982 * @note スクリプトからの呼出し用 1983 1983 */ 1984 1984 … … 1992 1992 #pragma mark - 1993 1993 /*------------------------------------------------------------------------*/ 1994 /** ¶ñIuWFNgðRpC1995 * 1996 * @param rcvr [in] V[o1997 * @param r [in] ¶ñIuWFNg1998 * 1999 * @return ÖIuWFNg2000 * 2001 * @note XNvg©çÌÄoµp1994 /** 文字列オブジェクトをコンパイル 1995 * 1996 * @param rcvr [in] レシーバ 1997 * @param r [in] 文字列オブジェクト 1998 * 1999 * @return 関数オブジェクト 2000 * 2001 * @note スクリプトからの呼出し用 2002 2002 */ 2003 2003 … … 2012 2012 2013 2013 /*------------------------------------------------------------------------*/ 2014 /** «ÏÌæ¾2015 * 2016 * @param rcvr [in] V[o2017 * @param r [in] ¶ñIuWFNg2018 * 2019 * @return ¶ñIuWFNg2020 * 2021 * @note XNvg©çÌÄoµp2014 /** 環境変数の取得 2015 * 2016 * @param rcvr [in] レシーバ 2017 * @param r [in] 文字列オブジェクト 2018 * 2019 * @return 文字列オブジェクト 2020 * 2021 * @note スクリプトからの呼出し用 2022 2022 */ 2023 2023 … … 2033 2033 #pragma mark - 2034 2034 /*------------------------------------------------------------------------*/ 2035 /** ItZbgÊu©çt«Ì1oCgðæèo·B2036 * 2037 * @param rcvr [in] V[o2038 * @param r [in] oCiIuWFNg2039 * @param offset [in] ItZbg2040 * 2041 * @return t«Ì1oCg2035 /** オフセット位置から符号付きの1バイトを取り出す。 2036 * 2037 * @param rcvr [in] レシーバ 2038 * @param r [in] バイナリオブジェクト 2039 * @param offset [in] オフセット 2040 * 2041 * @return 符号付きの1バイト 2042 2042 */ 2043 2043 -
NEWT0/trunk/src/newt_core/NewtGC.c
r56 r68 2 2 /** 3 3 * @file NewtGC.c 4 * @brief Kx[WRNV4 * @brief ガベージコレクション 5 5 * 6 6 * @author M.Nukui … … 11 11 12 12 13 /* wb_t@C*/13 /* ヘッダファイル */ 14 14 #ifdef HAVE_MEMORY_H 15 15 #include <memory.h> … … 28 28 29 29 30 /* Övg^Cv*/30 /* 関数プロトタイプ */ 31 31 static void NewtPoolSnap(const char * title, newtPool pool, int32_t usesize); 32 32 … … 50 50 #pragma mark - 51 51 /*------------------------------------------------------------------------*/ 52 /** v[ÌXibvVbgðoÍ·é53 * 54 * @param title [in] ^Cg55 * @param pool [in] v[56 * @param usesize [in] GC OÌgpTCY57 * 58 * @return ȵ52 /** メモリプールのスナップショットを出力する 53 * 54 * @param title [in] タイトル 55 * @param pool [in] メモリプール 56 * @param usesize [in] GC前の使用サイズ 57 * 58 * @return なし 59 59 */ 60 60 … … 67 67 #pragma mark - 68 68 /*------------------------------------------------------------------------*/ 69 /** IuWFNgf[^ð`FC·é70 * 71 * @param objp [in] `FC³êéIuWFNgf[^ÖÌ|C^72 * @param obj [in] `FC·éIuWFNgf[^73 * 74 * @return ȵ75 * 76 * @note objp ÌQÆæª NULL ÌêÍ obj ðZbgµÄÔ·69 /** オブジェクトデータをチェインする 70 * 71 * @param objp [in] チェインされるオブジェクトデータへのポインタ 72 * @param obj [in] チェインするオブジェクトデータ 73 * 74 * @return なし 75 * 76 * @note objp の参照先が NULL の場合は obj をセットして返す 77 77 */ 78 78 … … 92 92 93 93 /*------------------------------------------------------------------------*/ 94 /** v[àÅIuWFNgf[^ð`FC·é95 * 96 * @param pool [in] v[97 * @param obj [in] `FC·éIuWFNgf[^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 なし 101 101 */ 102 102 … … 114 114 115 115 /*------------------------------------------------------------------------*/ 116 /** GC ªKv©`FbN·é117 * 118 * @param pool [in] v[119 * @param size [in] ÇÁTCY120 * 121 * @return ȵ116 /** GCが必要かチェックする 117 * 118 * @param pool [in] メモリプール 119 * @param size [in] 追加サイズ 120 * 121 * @return なし 122 122 */ 123 123 … … 132 132 133 133 /*------------------------------------------------------------------------*/ 134 /** v[àÅIuWFNgðmÛµÄ`FC·é135 * 136 * @param pool [in] v[137 * @param size [in] IuWFNgTCY138 * @param dataSize [in] f[^TCY139 * 140 * @return IuWFNgf[^134 /** メモリプール内でオブジェクトメモリを確保してチェインする 135 * 136 * @param pool [in] メモリプール 137 * @param size [in] オブジェクトサイズ 138 * @param dataSize [in] データサイズ 139 * 140 * @return オブジェクトデータ 141 141 */ 142 142 … … 183 183 #pragma mark - 184 184 /*------------------------------------------------------------------------*/ 185 /** IuWFNgððú·é186 * 187 * @param pool [in] v[188 * @param obj [in] IuWFNg189 * 190 * @return ȵ185 /** オブジェクトを解放する 186 * 187 * @param pool [in] メモリプール 188 * @param obj [in] オブジェクト 189 * 190 * @return なし 191 191 */ 192 192 … … 215 215 216 216 /*------------------------------------------------------------------------*/ 217 /** IuWFNgf[^É`FC³êÄ¢éSÄÌIuWFNgf[^ððú·é218 * 219 * @param pool [in] v[220 * @param objp [i/o] IuWFNgf[^ÖÌ|C^221 * 222 * @return ȵ217 /** オブジェクトデータにチェインされている全てのオブジェクトデータを解放する 218 * 219 * @param pool [in] メモリプール 220 * @param objp [i/o]オブジェクトデータへのポインタ 221 * 222 * @return なし 223 223 */ 224 224 … … 239 239 240 240 /*------------------------------------------------------------------------*/ 241 /** v[Ìðú242 * 243 * @param pool [in] v[244 * 245 * @return ȵ241 /** メモリプールの解放 242 * 243 * @param pool [in] メモリプール 244 * 245 * @return なし 246 246 */ 247 247 … … 266 266 #if 0 267 267 /*------------------------------------------------------------------------*/ 268 /** IuWFNgÌ}[NðNA·é269 * 270 * @param pool [in] v[271 * 272 * @return ȵ268 /** オブジェクトのマークをクリアする 269 * 270 * @param pool [in] メモリプール 271 * 272 * @return なし 273 273 */ 274 274 … … 305 305 306 306 /*------------------------------------------------------------------------*/ 307 /** v[àÌIuWFNgðXEB[vi|j·é308 * 309 * @param pool [in] v[310 * @param mark [in] }[NtO311 * 312 * @return ȵ307 /** メモリプール内のオブジェクトをスウィープ(掃除)する 308 * 309 * @param pool [in] メモリプール 310 * @param mark [in] マークフラグ 311 * 312 * @return なし 313 313 */ 314 314 … … 360 360 361 361 /*------------------------------------------------------------------------*/ 362 /** IuWFNgð}[N·é363 * 364 * @param r [in] IuWFNg365 * @param mark [in] }[NtO366 * 367 * @return ȵ362 /** オブジェクトをマークする 363 * 364 * @param r [in] オブジェクト 365 * @param mark [in] マークフラグ 366 * 367 * @return なし 368 368 */ 369 369 … … 406 406 407 407 /*------------------------------------------------------------------------*/ 408 /** WX^àÌIuWFNgð}[N·é409 * 410 * @param reg [in] WX^411 * @param mark [in] }[NtO412 * 413 * @return ȵ408 /** レジスタ内のオブジェクトをマークする 409 * 410 * @param reg [in] レジスタ 411 * @param mark [in] マークフラグ 412 * 413 * @return なし 414 414 */ 415 415 … … 424 424 425 425 /*------------------------------------------------------------------------*/ 426 /** X^bNàÌIuWFNgð}[N·é427 * 428 * @param env [in] Às«429 * @param mark [in] }[NtO430 * 431 * @return ȵ426 /** スタック内のオブジェクトをマークする 427 * 428 * @param env [in] 実行環境 429 * @param mark [in] マークフラグ 430 * 431 * @return なし 432 432 */ 433 433 … … 438 438 uint32_t i; 439 439 440 // X^bN440 // スタック 441 441 stack = (newtRef *)env->stack.stackp; 442 442 … … 446 446 } 447 447 448 // ÖÄoµX^bN448 // 関数呼出しスタック 449 449 callstack = (vm_reg_t *)env->callstack.stackp; 450 450 … … 454 454 } 455 455 456 // áOnhEX^bN456 // 例外ハンドラ・スタック 457 457 NewtGCRefMark(env->currexcp, mark); 458 458 … … 475 475 476 476 /*------------------------------------------------------------------------*/ 477 /** QƳêÄ¢éIuWFNgð}[N·é478 * 479 * @param env [in] Às«480 * @param mark [in] }[NtO481 * 482 * @return ȵ477 /** 参照されているオブジェクトをマークする 478 * 479 * @param env [in] 実行環境 480 * @param mark [in] マークフラグ 481 * 482 * @return なし 483 483 */ 484 484 … … 490 490 // NewtGCRefMark(NSGetMagicPointers(), mark); 491 491 492 // WX^492 // レジスタ 493 493 NewtGCRegMark(&env->reg, mark); 494 494 495 // X^bN495 // スタック 496 496 NewtGCStackMark(env, mark); 497 497 } … … 499 499 500 500 /*------------------------------------------------------------------------*/ 501 /** Kx[WRNVÌÀs502 * 503 * @return ȵ501 /** ガベージコレクションの実行 502 * 503 * @return なし 504 504 */ 505 505 … … 517 517 #pragma mark - 518 518 /*------------------------------------------------------------------------*/ 519 /** XNvg©ç GC@ðÄo·iÀÛÉÍ GC ð\ñ·é¾¯j520 * 521 * @param rcvr [in] V[o519 /** スクリプトから GC を呼出す(実際には GC を予約するだけ) 520 * 521 * @param rcvr [in] レシーバ 522 522 * 523 523 * @return NIL 524 524 * 525 * @note XNvg©çÌÄoµp525 * @note スクリプトからの呼出し用 526 526 */ 527 527 -
NEWT0/trunk/src/newt_core/NewtIO.c
r56 r68 2 2 /** 3 3 * @file NewtIO.c 4 * @brief üoÍ4 * @brief 入出力処理 5 5 * 6 6 * @author M.Nukui … … 11 11 12 12 13 /* wb_t@C*/13 /* ヘッダファイル */ 14 14 #include <string.h> 15 15 #include <stdio.h> … … 28 28 29 29 30 /* }N*/30 /* マクロ */ 31 31 #if defined(HAVE_TERMIOS_H) 32 32 #define newt_getch() tcgetch(0) … … 38 38 39 39 40 /* Övg^Cv*/40 /* 関数プロトタイプ */ 41 41 static int cbreak_and_noecho(int fd, int vmin, struct termios *tiosp); 42 42 static int tcgetch(int fd); … … 44 44 45 45 /*------------------------------------------------------------------------*/ 46 /** üoÍXg[\¢ÌÉt@CÌîñðZbg·é47 * 48 * @param stream [out] üoÍXg[49 * @param f [in] t@C50 * 51 * @return ȵ46 /** 入出力ストリーム構造体にファイルの情報をセットする 47 * 48 * @param stream [out]入出力ストリーム 49 * @param f [in] ファイル 50 * 51 * @return なし 52 52 */ 53 53 … … 66 66 67 67 /*------------------------------------------------------------------------*/ 68 /** printf tH[}bgÅoÍ·éisè·j69 * 70 * @param stream [in] oÍXg[71 * @param format [in] tH[}bg72 * @param ... [in] printf ø73 * 74 * @return printf Ìßèl75 * 76 * @note newtStream_t ðgp68 /** printf フォーマットで出力する(不定長) 69 * 70 * @param stream [in] 出力ストリーム 71 * @param format [in] フォーマット 72 * @param ... [in] printf 引数 73 * 74 * @return printf の戻り値 75 * 76 * @note newtStream_t を使用 77 77 */ 78 78 … … 91 91 92 92 /*------------------------------------------------------------------------*/ 93 /** vprintf tH[}bgÅoÍ·é94 * 95 * @param stream [in] oÍXg[96 * @param format [in] tH[}bg97 * @param ap [in] vprintf ø98 * 99 * @return vprintf Ìßèl100 * 101 * @note newtStream_t ðgp102 * ¶ñÉÇÁ·éȩ̂À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) 103 103 */ 104 104 … … 131 131 132 132 /*------------------------------------------------------------------------*/ 133 /** ¶ðoÍ·é134 * 135 * @param c [in] ¶136 * @param stream [in] oÍXg[137 * 138 * @return fputc Ìßèl139 * 140 * @note newtStream_t ðgp133 /** 文字を出力する 134 * 135 * @param c [in] 文字 136 * @param stream [in] 出力ストリーム 137 * 138 * @return fputc の戻り値 139 * 140 * @note newtStream_t を使用 141 141 */ 142 142 … … 162 162 163 163 /*------------------------------------------------------------------------*/ 164 /** ¶ñðoÍ·é165 * 166 * @param str [in] ¶ñ167 * @param stream [in] oÍXg[168 * 169 * @return fputs Ìßèl170 * 171 * @note newtStream_t ðgp164 /** 文字列を出力する 165 * 166 * @param str [in] 文字列 167 * @param stream [in] 出力ストリーム 168 * 169 * @return fputs の戻り値 170 * 171 * @note newtStream_t を使用 172 172 */ 173 173 … … 191 191 #pragma mark - 192 192 /*------------------------------------------------------------------------*/ 193 /** printf tH[}bgÅoÍ·éisè·j194 * 195 * @param f [in] oÍXg[196 * @param format [in] tH[}bg197 * @param ... [in] printf ø198 * 199 * @return printf Ìßèl193 /** printf フォーマットで出力する(不定長) 194 * 195 * @param f [in] 出力ストリーム 196 * @param format [in] フォーマット 197 * @param ... [in] printf 引数 198 * 199 * @return printf の戻り値 200 200 */ 201 201 … … 217 217 218 218 /*------------------------------------------------------------------------*/ 219 /** ¶ÌoÍ220 * 221 * @param c [in] ¶222 * @param f [in] oÍXg[223 * 224 * @return fputc Ìßèl219 /** 文字の出力 220 * 221 * @param c [in] 文字 222 * @param f [in] 出力ストリーム 223 * 224 * @return fputc の戻り値 225 225 */ 226 226 … … 235 235 236 236 /*------------------------------------------------------------------------*/ 237 /** ¶ÌoÍ238 * 239 * @param str [in] ¶ñ240 * @param f [in] oÍXg[241 * 242 * @return fputs Ìßèl237 /** 文字の出力 238 * 239 * @param str [in] 文字列 240 * @param f [in] 出力ストリーム 241 * 242 * @return fputs の戻り値 243 243 */ 244 244 … … 254 254 #pragma mark - 255 255 /*------------------------------------------------------------------------*/ 256 /** printf tH[}bgÅoÍ·éisè·j257 * 258 * @param title [in] ^Cg259 * @param format [in] tH[}bg260 * @param ... [in] printf ø261 * 262 * @return printf Ìßèl256 /** printf フォーマットで出力する(不定長) 257 * 258 * @param title [in] タイトル 259 * @param format [in] フォーマット 260 * @param ... [in] printf 引数 261 * 262 * @return printf の戻り値 263 263 */ 264 264 … … 288 288 #pragma mark - 289 289 /*------------------------------------------------------------------------*/ 290 /** üÍXg[©ç¶ñðæo·291 * 292 * @param stream [in] üÍXg[293 * 294 * @retval ¶ñIuWFNg üÍ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) 298 298 */ 299 299 … … 315 315 316 316 if (result == kNewtRefNIL) 317 { // ¶ñIuWFNgì¬317 { // 文字列オブジェクト作成 318 318 result = NewtMakeString2(str, len, false); 319 319 320 320 if (NewtRefIsNIL(result)) 321 { // ðmÛūȩÁ½321 { // メモリを確保できなかった 322 322 return NewtThrow0(kNErrOutOfObjectMemory); 323 323 } 324 324 } 325 325 else 326 { // ÇÁ326 { // 追加 327 327 oldlen = NewtStringLength(result); 328 328 result = NewtStrCat2(result, str, len); 329 329 330 330 if (NewtStringLength(result) < oldlen + len) 331 { // ðmÛūȩÁ½331 { // メモリを確保できなかった 332 332 return NewtThrow0(kNErrOutOfObjectMemory); 333 333 } … … 337 337 break; 338 338 339 // Åã̶ð`FbN339 // 最後の文字をチェック 340 340 c = buff[maxsize - 1]; 341 341 … … 345 345 if (c == '\r') 346 346 { 347 // P¶æÇÝ347 // 1文字先読み 348 348 c = fgetc(stream); 349 349 350 350 if (c != '\n') 351 { // CRLF ÅÈ¢iCR ÌÝjê352 // æÇݵ½¶ðXg[Éß·351 { // CRLF でない(CR のみ)場合 352 // 先読みした文字をストリームに戻す 353 353 ungetc(c, stream); 354 354 break; … … 362 362 363 363 /*------------------------------------------------------------------------*/ 364 /** WüÍ©ç¶ñðæo·365 * 366 * @param rcvr [in] V[o367 * 368 * @retval ¶ñIuWFNg üÍf[^ª¶Ý·éê369 * @retval NIL üÍf[^ª¶ÝµÈ¢ê364 /** 標準入力から文字列を取出す 365 * 366 * @param rcvr [in] レシーバ 367 * 368 * @retval 文字列オブジェクト 入力データが存在する場合 369 * @retval NIL 入力データが存在しない場合 370 370 */ 371 371 … … 377 377 378 378 /*------------------------------------------------------------------------*/ 379 /** üÍXg[©ç¶ðæo·380 * 381 * @param stream [in] üÍXg[382 * 383 * @retval ¶IuWFNg üÍf[^ª¶Ý·éê379 /** 入力ストリームから文字を取出す 380 * 381 * @param stream [in] 入力ストリーム 382 * 383 * @retval 文字オブジェクト 入力データが存在する場合 384 384 * @retval NIL EOF 385 385 */ … … 399 399 400 400 /*------------------------------------------------------------------------*/ 401 /** WüÍ©ç¶ðæo·402 * 403 * @param rcvr [in] V[o404 * 405 * @retval ¶IuWFNg üÍf[^ª¶Ý·éê406 * @retval NIL üÍf[^ª¶ÝµÈ¢ê401 /** 標準入力から文字を取出す 402 * 403 * @param rcvr [in] レシーバ 404 * 405 * @retval 文字オブジェクト 入力データが存在する場合 406 * @retval NIL 入力データが存在しない場合 407 407 */ 408 408 … … 416 416 417 417 /*------------------------------------------------------------------------*/ 418 /** ^[~iðñJmjJ[h¨æÑGR[ȵÉÝè·é419 * 420 * @param fd [in] ^[~i421 * @param vmin [in] ñJmjJÇÝÝÌŬ¶422 * @param tiosp [out] ÏXOÌ 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以外 エラー 426 426 */ 427 427 … … 446 446 447 447 /*------------------------------------------------------------------------*/ 448 /** ^[~i©çüͶðP¶æ¾449 * 450 * @param fd [in] ^[~i451 * 452 * @retval ¶f[^ üÍf[^ª¶Ý·éê453 * @retval 0 üÍf[^ª¶ÝµÈ¢ê448 /** ターミナルから入力文字を1文字取得 449 * 450 * @param fd [in] ターミナル 451 * 452 * @retval 文字データ 入力データが存在する場合 453 * @retval 0 入力データが存在しない場合 454 454 */ 455 455 … … 477 477 478 478 /*------------------------------------------------------------------------*/ 479 /** L[{[h©çüͶðP¶æ¾480 * 481 * @param rcvr [in] V[o482 * 483 * @retval ¶IuWFNg üÍf[^ª¶Ý·éê484 * @retval NIL üÍf[^ª¶ÝµÈ¢ê479 /** キーボードから入力文字を1文字取得 480 * 481 * @param rcvr [in] レシーバ 482 * 483 * @retval 文字オブジェクト 入力データが存在する場合 484 * @retval NIL 入力データが存在しない場合 485 485 */ 486 486 -
NEWT0/trunk/src/newt_core/NewtIconv.c
r53 r68 1 1 /** 2 2 * @file NewtIconv.c 3 * @brief ¶R[hilibiconvgpj3 * @brief 文字コード処理(libiconv使用) 4 4 * 5 5 * @author M.Nukui … … 10 10 11 11 12 /* wb_t@C*/12 /* ヘッダファイル */ 13 13 #include "NewtIconv.h" 14 14 … … 16 16 #ifdef HAVE_LIBICONV 17 17 /*------------------------------------------------------------------------*/ 18 /** NSOF obt@ðÇñÅzñIuWFNgÉÏ··é18 /** NSOFバッファを読込んで配列オブジェクトに変換する 19 19 * 20 * @param cd [in] iconv Ï·fBXNv^[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]変換された文字列の長さ 24 24 * 25 * @return Ï·³ê½¶ñ25 * @return 変換された文字列 26 26 * 27 * @note Ï·³ê½¶ñÍÄoµ³Å free ·éKv è27 * @note 変換された文字列は呼出し元で free する必要あり 28 28 */ 29 29 … … 52 52 53 53 if (status == (size_t)-1) 54 { // Ϸɸsµ½ÌÅobt@ððú·é54 { // 変換に失敗したのでバッファを解放する 55 55 free(dst); 56 56 dst = NULL; 57 57 } 58 58 else 59 { // ¢çÈ¢ªÌobt@ðØèlßé59 { // いらない部分のバッファを切り詰める 60 60 dstlen = bufflen - outbytesleft; 61 61 dst = realloc(dst, dstlen); -
NEWT0/trunk/src/newt_core/NewtMem.c
r1 r68 2 2 /** 3 3 * @file NewtMem.c 4 * @brief Ç4 * @brief メモリ管理 5 5 * 6 6 * @author M.Nukui … … 11 11 12 12 13 /* wb_t@C*/13 /* ヘッダファイル */ 14 14 #include <string.h> 15 15 #include "NewtMem.h" … … 17 17 18 18 /*------------------------------------------------------------------------*/ 19 /** v[ÌmÛ20 * 21 * @param expandspace [in] ubNÌg£TCY22 * 23 * @return v[19 /** メモリプールの確保 20 * 21 * @param expandspace [in] ブロックの拡張サイズ 22 * 23 * @return メモリプール 24 24 */ 25 25 … … 40 40 41 41 /*------------------------------------------------------------------------*/ 42 /** v[©çwè³ê½TCYÌðmÛ·é43 * 44 * @param pool [in] v[45 * @param size [in] f[^TCY46 * 47 * @return mÛµ½ÖÌ|C^48 * 49 * @note »ÝÍܾƩÇÍsíêĢȢ42 /** メモリプールから指定されたサイズのメモリを確保する 43 * 44 * @param pool [in] メモリプール 45 * @param size [in] データサイズ 46 * 47 * @return 確保したメモリへのポインタ 48 * 49 * @note 現在はまだ独自メモリ管理は行われていない 50 50 */ 51 51 … … 61 61 62 62 /*------------------------------------------------------------------------*/ 63 /** v[©çwè³ê½TCYÌðmÛ·é64 * 65 * @param pool [in] v[66 * @param number [in] f[^67 * @param size [in] f[^TCY68 * 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 現在はまだ独自メモリ管理は行われていない 72 72 */ 73 73 … … 83 83 84 84 /*------------------------------------------------------------------------*/ 85 /** v[©çwè³ê½TCYÌðÄmÛ·é86 * 87 * @param pool [in] v[88 * @param ptr [in] ÖÌ|C^89 * @param size [in] f[^TCY90 * 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 現在はまだ独自メモリ管理は行われていない 94 94 */ 95 95 … … 105 105 106 106 /*------------------------------------------------------------------------*/ 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 現在はまだ独自メモリ管理は行われていない 114 114 */ 115 115 … … 122 122 #pragma mark - 123 123 /*------------------------------------------------------------------------*/ 124 /** X^bNîñðZbgAbv125 * 126 * @param stackinfo [out] X^bNîñ127 * @param pool [in] v[128 * @param datasize [in] f[^TCY129 * @param blocksize [in] ubNTCY130 * 131 * @return ȵ124 /** スタック情報をセットアップ 125 * 126 * @param stackinfo [out]スタック情報 127 * @param pool [in] メモリプール 128 * @param datasize [in] データサイズ 129 * @param blocksize [in] ブロックサイズ 130 * 131 * @return なし 132 132 */ 133 133 … … 144 144 145 145 /*------------------------------------------------------------------------*/ 146 /** X^bNððú147 * 148 * @param stackinfo [in] X^bNîñ149 * 150 * @return ȵ146 /** スタックを解放 147 * 148 * @param stackinfo [in] スタック情報 149 * 150 * @return なし 151 151 */ 152 152 … … 165 165 166 166 /*------------------------------------------------------------------------*/ 167 /** X^bNðg£168 * 169 * @param stackinfo [in] X^bNîñ170 * @param n [in] KvƳêÄ¢éX^bN·171 * 172 * @retval true KvȾ¯mÛ³êÄ¢é173 * @retval false mÛūȩÁ½167 /** スタックを拡張 168 * 169 * @param stackinfo [in] スタック情報 170 * @param n [in] 必要とされているスタック長 171 * 172 * @retval true 必要なだけ確保されている 173 * @retval false 確保できなかった 174 174 */ 175 175 … … 198 198 199 199 /*------------------------------------------------------------------------*/ 200 /** X^bNðX»201 * 202 * @param stackinfo [in] X^bNîñ203 * @param n [in] KvƳêÄ¢éX^bN·204 * 205 * @return ȵ200 /** スタックをスリム化 201 * 202 * @param stackinfo [in] スタック情報 203 * @param n [in] 必要とされているスタック長 204 * 205 * @return なし 206 206 */ 207 207 … … 231 231 #pragma mark - 232 232 /*------------------------------------------------------------------------*/ 233 /** ACðvZ234 * 235 * @param n [in] AC·él236 * @param byte [in] AC³êéPÊ237 * 238 * @return AC³ê½l233 /** アラインを計算 234 * 235 * @param n [in] アラインする値 236 * @param byte [in] アラインされる単位 237 * 238 * @return アラインされた値 239 239 */ 240 240 -
NEWT0/trunk/src/newt_core/NewtNSOF.c
r64 r68 11 11 12 12 13 /* wb_t@C*/13 /* ヘッダファイル */ 14 14 #include <string.h> 15 15 … … 24 24 #include "utils/endian_utils.h" 25 25 26 /* }N*/27 #define NSOFIsNOS(verno) ((verno == 1) || (verno == 2)) ///< Newton OS @Ý·ÌNSOF28 29 30 31 /* ^é¾*/32 33 /// NSOF Ï·Égp·é iconvÏ·fBXNv^[26 /* マクロ */ 27 #define NSOFIsNOS(verno) ((verno == 1) || (verno == 2)) ///< Newton OS 互換の NSOF 28 29 30 31 /* 型宣言 */ 32 33 /// NSOF変換に使用する iconv変換ディスクリプター 34 34 #ifdef HAVE_LIBICONV 35 35 typedef struct { 36 iconv_t utf16be; ///< iconv Ï·fBXNv^[iUTF16-BEj37 iconv_t macroman; ///< iconv Ï·fBXNv^[iMACROMANj36 iconv_t utf16be; ///< iconv変換ディスクリプター(UTF16-BE) 37 iconv_t macroman; ///< iconv変換ディスクリプター(MACROMAN) 38 38 } nsof_iconv_t; 39 39 #endif /* HAVE_LIBICONV */ 40 40 41 /// NSOF Xg[\¢Ì41 /// NSOFストリーム構造体 42 42 typedef struct { 43 int32_t verno; ///< NSOF o[WÔ44 uint8_t * data; ///< f[^45 uint32_t len; ///< f[^Ì·³46 uint32_t offset; ///< ìÆÌÊu47 newtRefVar precedents; ///< o»ÏÝIuWFNgÌXg48 newtErr lastErr; ///< ÅãÌG[R[h43 int32_t verno; ///< NSOFバージョン番号 44 uint8_t * data; ///< データ 45 uint32_t len; ///< データの長さ 46 uint32_t offset; ///< 作業中の位置 47 newtRefVar precedents; ///< 出現済みオブジェクトのリスト 48 newtErr lastErr; ///< 最後のエラーコード 49 49 50 50 #ifdef HAVE_LIBICONV 51 51 struct { 52 nsof_iconv_t to; ///< NSOF GR[fBOÖÌÏ·p53 nsof_iconv_t from; ///< NSOF GR[fBO©çÌÏ·p54 } cd; ///< iconv Ï·fBXNv^[52 nsof_iconv_t to; ///< NSOFエンコーディングへの変換用 53 nsof_iconv_t from; ///< NSOFエンコーディングからの変換用 54 } cd; ///< iconv変換ディスクリプター 55 55 #endif /* HAVE_LIBICONV */ 56 56 } nsof_stream_t; 57 57 58 58 59 /* Övg^Cv*/59 /* 関数プロトタイプ */ 60 60 static bool NewtRefIsByte(newtRefArg r); 61 61 static bool NewtRefIsSmallRect(newtRefArg r); … … 89 89 #pragma mark - 90 90 /*------------------------------------------------------------------------*/ 91 /** IuWFNgª 0`255 Ì®©`FbN·é92 * 93 * @param r [in] IuWFNg94 * 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 の整数でない 97 97 */ 98 98 … … 114 114 115 115 /*------------------------------------------------------------------------*/ 116 /** t[ª NSOF(smallRect) Ìðð½·©`FbN·é117 * 118 * @param r [in] t[IuWFNg119 * 120 * @retval true ðð½·121 * @retval false ðð½³È¢116 /** フレームが NSOF(smallRect) の条件を満たすかチェックする 117 * 118 * @param r [in] フレームオブジェクト 119 * 120 * @retval true 条件を満たす 121 * @retval false 条件を満たさない 122 122 */ 123 123 … … 140 140 141 141 /*------------------------------------------------------------------------*/ 142 /** zñ©çIuWFNgðT·143 * 144 * @param array [in] zñ145 * @param r [in] t[IuWFNg146 * 147 * @retval 0 È㠩©Á½Êu148 * @retval -1 ©Â©çÈ©Á½142 /** 配列からオブジェクトを探す 143 * 144 * @param array [in] 配列 145 * @param r [in] フレームオブジェクト 146 * 147 * @retval 0以上 見つかった位置 148 * @retval -1 見つからなかった 149 149 */ 150 150 … … 170 170 #pragma mark - 171 171 /*------------------------------------------------------------------------*/ 172 /** 1byte ð NSOF Åobt@ÉÞ173 * 174 * @param nsof [i/o]NSOF obt@175 * @param value [in] 1byte @f[^176 * 177 * @return G[R[h178 * 179 * @note nsof->data ª NULL ÌêÍ nsof->offset ÌÝXV³êé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 のみ更新される 180 180 */ 181 181 … … 185 185 { 186 186 if (nsof->len <= nsof->offset) 187 { // obt@ðz¦½187 { // バッファを越えた 188 188 nsof->lastErr = kNErrOutOfRange; 189 189 return nsof->lastErr; … … 200 200 201 201 /*------------------------------------------------------------------------*/ 202 /** f[^ð xlong `®Åobt@ÉÞ203 * 204 * @param nsof [i/o]NSOF obt@205 * @param value [in] f[^206 * 207 * @return G[R[h208 * 209 * @note nsof->data ª NULL ÌêÍ nsof->offset ÌÝXV³êé202 /** データを xlong 形式でバッファに書込む 203 * 204 * @param nsof [i/o]NSOFバッファ 205 * @param value [in] データ 206 * 207 * @return エラーコード 208 * 209 * @note nsof->data が NULL の場合は nsof->offset のみ更新される 210 210 */ 211 211 … … 230 230 231 231 /*------------------------------------------------------------------------*/ 232 /** NSOF obt@ ©çf[^ð 1byte ÇÞ233 * 234 * @param nsof [i/o]NSOF obt@235 * 236 * @return 1byte f[^232 /** NSOFバッファ からデータを 1byte 読込む 233 * 234 * @param nsof [i/o]NSOFバッファ 235 * 236 * @return 1byte データ 237 237 */ 238 238 … … 242 242 243 243 if (nsof->len <= nsof->offset) 244 { // obt@ðz¦½244 { // バッファを越えた 245 245 nsof->lastErr = kNErrNotABinaryObject; 246 246 return 0; … … 255 255 256 256 /*------------------------------------------------------------------------*/ 257 /** NSOF obt@ ©çf[^ð xlong `®ÅÇÞ258 * 259 * @param nsof [i/o]NSOF obt@260 * 261 * @return f[^257 /** NSOFバッファ からデータを xlong 形式で読込む 258 * 259 * @param nsof [i/o]NSOFバッファ 260 * 261 * @return データ 262 262 */ 263 263 … … 282 282 #pragma mark - 283 283 /*------------------------------------------------------------------------*/ 284 /** o»ÏÝf[^ð NSOF Åobt@ÉÞ285 * 286 * @param nsof [i/o]NSOF obt@287 * @param pos [in] o»Êu288 * 289 * @return G[R[h290 * 291 * @note nsof->data ª NULL ÌêÍ nsof->offset ÌÝXV³êé284 /** 出現済みデータを NSOF でバッファに書込む 285 * 286 * @param nsof [i/o]NSOFバッファ 287 * @param pos [in] 出現位置 288 * 289 * @return エラーコード 290 * 291 * @note nsof->data が NULL の場合は nsof->offset のみ更新される 292 292 */ 293 293 … … 302 302 303 303 /*------------------------------------------------------------------------*/ 304 /** ¦lf[^ð NSOF Åobt@ÉÞ305 * 306 * @param nsof [i/o]NSOF obt@307 * @param r [in] ¦lf[^308 * 309 * @return G[R[h310 * 311 * @note nsof->data ª NULL ÌêÍ nsof->offset ÌÝXV³êé304 /** 即値データを NSOF でバッファに書込む 305 * 306 * @param nsof [i/o]NSOFバッファ 307 * @param r [in] 即値データ 308 * 309 * @return エラーコード 310 * 311 * @note nsof->data が NULL の場合は nsof->offset のみ更新される 312 312 */ 313 313 … … 322 322 323 323 /*------------------------------------------------------------------------*/ 324 /** ¶f[^ð NSOF Åobt@ÉÞ325 * 326 * @param nsof [i/o]NSOF obt@327 * @param r [in] ¶f[^328 * 329 * @return G[R[h330 * 331 * @note nsof->data ª NULL ÌêÍ nsof->offset ÌÝXV³êé324 /** 文字データを NSOF でバッファに書込む 325 * 326 * @param nsof [i/o]NSOFバッファ 327 * @param r [in] 文字データ 328 * 329 * @return エラーコード 330 * 331 * @note nsof->data が NULL の場合は nsof->offset のみ更新される 332 332 */ 333 333 … … 355 355 356 356 /*------------------------------------------------------------------------*/ 357 /** oCif[^ð NSOF Åobt@ÉÞ358 * 359 * @param nsof [i/o]NSOF obt@360 * @param r [in] oCiIuWFNg361 * @param objtype [in] IuWFNg^Cv362 * 363 * @return G[R[h364 * 365 * @note nsof->data ª NULL ÌêÍ nsof->offset ÌÝXV³êé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 のみ更新される 366 366 */ 367 367 … … 452 452 453 453 /*------------------------------------------------------------------------*/ 454 /** V{f[^ð NSOF Åobt@ÉÞ455 * 456 * @param nsof [i/o]NSOF obt@457 * @param r [in] V{IuWFNg458 * 459 * @return G[R[h460 * 461 * @note nsof->data ª NULL ÌêÍ nsof->offset ÌÝXV³êé454 /** シンボルデータを NSOF でバッファに書込む 455 * 456 * @param nsof [i/o]NSOFバッファ 457 * @param r [in] シンボルオブジェクト 458 * 459 * @return エラーコード 460 * 461 * @note nsof->data が NULL の場合は nsof->offset のみ更新される 462 462 */ 463 463 … … 499 499 #ifdef __NAMED_MAGIC_POINTER__ 500 500 /*------------------------------------------------------------------------*/ 501 /** ¼Ot}WbN|C^ð NSOF Åobt@ÉÞ502 * 503 * @param nsof [i/o]NSOF obt@504 * @param r [in] ¼Ot}WbN|C^505 * 506 * @return G[R[h507 * 508 * @note nsof->data ª NULL ÌêÍ nsof->offset ÌÝXV³êé501 /** 名前付マジックポインタを NSOF でバッファに書込む 502 * 503 * @param nsof [i/o]NSOFバッファ 504 * @param r [in] 名前付マジックポインタ 505 * 506 * @return エラーコード 507 * 508 * @note nsof->data が NULL の場合は nsof->offset のみ更新される 509 509 */ 510 510 … … 517 517 if (NSOFIsNOS(nsof->verno)) 518 518 { 519 // Æè ¦¸V{ðÞ519 // とりあえずシンボルを書込む 520 520 NSOFWriteSymbol(nsof, sym); 521 521 nsof->lastErr = kNErrNSOFWrite; … … 540 540 541 541 /*------------------------------------------------------------------------*/ 542 /** zñf[^ð NSOF Åobt@ÉÞ543 * 544 * @param nsof [i/o]NSOF obt@545 * @param r [in] zñIuWFNg546 * 547 * @return G[R[h548 * 549 * @note nsof->data ª NULL ÌêÍ nsof->offset ÌÝXV³êé542 /** 配列データを NSOF でバッファに書込む 543 * 544 * @param nsof [i/o]NSOFバッファ 545 * @param r [in] 配列オブジェクト 546 * 547 * @return エラーコード 548 * 549 * @note nsof->data が NULL の場合は nsof->offset のみ更新される 550 550 */ 551 551 … … 589 589 590 590 /*------------------------------------------------------------------------*/ 591 /** t[f[^ð NSOF Åobt@ÉÞ592 * 593 * @param nsof [i/o]NSOF obt@594 * @param r [in] t[IuWFNg595 * 596 * @return G[R[h597 * 598 * @note nsof->data ª NULL ÌêÍ nsof->offset ÌÝXV³êé591 /** フレームデータを NSOF でバッファに書込む 592 * 593 * @param nsof [i/o]NSOFバッファ 594 * @param r [in] フレームオブジェクト 595 * 596 * @return エラーコード 597 * 598 * @note nsof->data が NULL の場合は nsof->offset のみ更新される 599 599 */ 600 600 … … 633 633 634 634 /*------------------------------------------------------------------------*/ 635 /** t[f[^ð NSOF(smallRect) Åobt@ÉÞ636 * 637 * @param nsof [i/o]NSOF obt@638 * @param r [in] t[IuWFNg639 * 640 * @return G[R[h641 * 642 * @note nsof->data ª NULL ÌêÍ nsof->offset ÌÝXV³êé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 のみ更新される 643 643 */ 644 644 … … 656 656 657 657 /*------------------------------------------------------------------------*/ 658 /** IuWFNgð NSOFoCiIuWFNgÉÏ·µÄÞ659 * 660 * @param nsof [i/o]NSOF obt@661 * @param r [in] IuWFNg662 * 663 * @return G[R[h664 * 665 * @note nsof->data ª NULL ÌêÍ nsof->offset ÌÝXV³êé658 /** オブジェクトを NSOFバイナリオブジェクトに変換して書込む 659 * 660 * @param nsof [i/o]NSOFバッファ 661 * @param r [in] オブジェクト 662 * 663 * @return エラーコード 664 * 665 * @note nsof->data が NULL の場合は nsof->offset のみ更新される 666 666 */ 667 667 … … 729 729 730 730 /*------------------------------------------------------------------------*/ 731 /** IuWFNgð NSOFoCiIuWFNgÉÏ··é732 * 733 * @param rcvr [in] V[o734 * @param r [in] IuWFNg735 * @param ver [in] o[W736 * 737 * @return NSOF oCiIuWFNg731 /** オブジェクトを NSOFバイナリオブジェクトに変換する 732 * 733 * @param rcvr [in] レシーバ 734 * @param r [in] オブジェクト 735 * @param ver [in] バージョン 736 * 737 * @return NSOFバイナリオブジェクト 738 738 */ 739 739 … … 768 768 #endif /* HAVE_LIBICONV */ 769 769 770 // KvÈTCYÌvZ770 // 必要なサイズの計算 771 771 NewtWriteNSOF(&nsof, r); 772 772 773 773 if (nsof.lastErr == kNErrNone) 774 774 { 775 // oCiIuWFNgÌì¬775 // バイナリオブジェクトの作成 776 776 result = NewtMakeBinary(NSSYM(NSOF), NULL, nsof.offset, false); 777 777 778 778 if (NewtRefIsNotNIL(result)) 779 { // ÀÛÌÝ779 { // 実際の書込み 780 780 NewtSetLength(nsof.precedents, 0); 781 781 nsof.data = NewtRefToBinary(result); … … 803 803 #pragma mark - 804 804 /*------------------------------------------------------------------------*/ 805 /** NSOF obt@ðÇñÅoCiIuWFNgÉÏ··é806 * 807 * @param nsof [i/o]NSOF obt@808 * @param type [in] NSOF Ì^Cv809 * 810 * @return oCiIuWFNg805 /** NSOFバッファを読込んでバイナリオブジェクトに変換する 806 * 807 * @param nsof [i/o]NSOFバッファ 808 * @param type [in] NSOFのタイプ 809 * 810 * @return バイナリオブジェクト 811 811 */ 812 812 … … 885 885 886 886 /*------------------------------------------------------------------------*/ 887 /** NSOF obt@ðÇñÅzñIuWFNgÉÏ··é888 * 889 * @param nsof [i/o]NSOF obt@890 * @param type [in] NSOF Ì^Cv891 * 892 * @return zñIuWFNg887 /** NSOFバッファを読込んで配列オブジェクトに変換する 888 * 889 * @param nsof [i/o]NSOFバッファ 890 * @param type [in] NSOFのタイプ 891 * 892 * @return 配列オブジェクト 893 893 */ 894 894 … … 929 929 930 930 /*------------------------------------------------------------------------*/ 931 /** NSOF obt@ðÇñÅt[IuWFNgÉÏ··é932 * 933 * @param nsof [i/o]NSOF obt@934 * 935 * @return t[IuWFNg931 /** NSOFバッファを読込んでフレームオブジェクトに変換する 932 * 933 * @param nsof [i/o]NSOFバッファ 934 * 935 * @return フレームオブジェクト 936 936 */ 937 937 … … 974 974 975 975 /*------------------------------------------------------------------------*/ 976 /** NSOF obt@ðÇñÅV{IuWFNgÉÏ··é977 * 978 * @param nsof [i/o]NSOF obt@979 * 980 * @return V{IuWFNg976 /** NSOFバッファを読込んでシンボルオブジェクトに変換する 977 * 978 * @param nsof [i/o]NSOFバッファ 979 * 980 * @return シンボルオブジェクト 981 981 */ 982 982 … … 1002 1002 1003 1003 if (buff) 1004 { // Ï·³ê½1004 { // 変換された 1005 1005 r = NewtMakeSymbol(buff); 1006 1006 free(buff); … … 1023 1023 #ifdef __NAMED_MAGIC_POINTER__ 1024 1024 /*------------------------------------------------------------------------*/ 1025 /** NSOF obt@ðÇñżOt}WbN|C^ÉÏ··é1026 * 1027 * @param nsof [i/o]NSOF obt@1028 * 1029 * @return ¼Ot}WbN|C^1025 /** NSOFバッファを読込んで名前付マジックポインタに変換する 1026 * 1027 * @param nsof [i/o]NSOFバッファ 1028 * 1029 * @return 名前付マジックポインタ 1030 1030 */ 1031 1031 … … 1041 1041 { 1042 1042 nsof->lastErr = kNErrNSOFRead; 1043 // Æè ¦¸V{ÌÜÜ1043 // とりあえずシンボルのまま 1044 1044 } 1045 1045 else … … 1055 1055 1056 1056 /*------------------------------------------------------------------------*/ 1057 /** NSOF obt@ðÇñÅt[IuWFNg(smallRect)ÉÏ··é1058 * 1059 * @param nsof [i/o]NSOF obt@1060 * 1061 * @return t[IuWFNg(smallRect)1057 /** NSOFバッファを読込んでフレームオブジェクト(smallRect)に変換する 1058 * 1059 * @param nsof [i/o]NSOFバッファ 1060 * 1061 * @return フレームオブジェクト(smallRect) 1062 1062 */ 1063 1063 … … 1067 1067 1068 1068 r = NcMakeFrame(); 1069 // «Í map ð¤L·é±Æ1069 // 将来は map を共有すること 1070 1070 1071 1071 NcSetSlot(r, NSSYM(top), NewtMakeInteger(NSOFReadByte(nsof))); … … 1079 1079 1080 1080 /*------------------------------------------------------------------------*/ 1081 /** NSOF oCiIuWFNgðÇñÅIuWFNgÉÏ··é1082 * 1083 * @param nsof [i/o]NSOF obt@1084 * 1085 * @return IuWFNg1081 /** NSOFバイナリオブジェクトを読込んでオブジェクトに変換する 1082 * 1083 * @param nsof [i/o]NSOFバッファ 1084 * 1085 * @return オブジェクト 1086 1086 */ 1087 1087 … … 1151 1151 case kNSOFLargeBinary: 1152 1152 default: 1153 // T|[g³êĢܹñ1153 // サポートされていません 1154 1154 nsof->lastErr = kNErrNSOFRead; 1155 1155 break; … … 1161 1161 1162 1162 /*------------------------------------------------------------------------*/ 1163 /** NSOF oCiIuWFNgðÇÞ1164 * 1165 * @param data [in] NSOF f[^1166 * @param size [in] NSOF f[^TCY1167 * 1168 * @return IuWFNg1163 /** NSOFバイナリオブジェクトを読込む 1164 * 1165 * @param data [in] NSOFデータ 1166 * @param size [in] NSOFデータサイズ 1167 * 1168 * @return オブジェクト 1169 1169 */ 1170 1170 … … 1209 1209 1210 1210 /*------------------------------------------------------------------------*/ 1211 /** NSOF oCiIuWFNgðÇÞ1212 * 1213 * @param rcvr [in] V[o1214 * @param r [in] NSOF oCiIuWFNg1215 * 1216 * @return IuWFNg1211 /** NSOFバイナリオブジェクトを読込む 1212 * 1213 * @param rcvr [in] レシーバ 1214 * @param r [in] NSOFバイナリオブジェクト 1215 * 1216 * @return オブジェクト 1217 1217 */ 1218 1218 -
NEWT0/trunk/src/newt_core/NewtObj.c
r46 r68 2 2 /** 3 3 * @file NewtObj.c 4 * @brief IuWFNgVXe4 * @brief オブジェクトシステム 5 5 * 6 6 * @author M.Nukui … … 11 11 12 12 13 /* wb_t@C*/13 /* ヘッダファイル */ 14 14 #include <stdlib.h> 15 15 #include <stdio.h> … … 21 21 22 22 23 /* Övg^Cv*/23 /* 関数プロトタイプ */ 24 24 static newtRef NewtMakeSymbol0(const char *s); 25 25 static bool NewtBSearchSymTable(newtRefArg r, const char * name, uint32_t hash, int32_t st, int32_t * indexP); … … 54 54 #pragma mark - 55 55 /*------------------------------------------------------------------------*/ 56 /** V{ÌnbV 57 lðvZ 58 * 59 * @param name [in] V{¼ 60 * 61 * @return nbV 62 l 56 /** シンボルのハッシュ値を計算 57 * 58 * @param name [in] シンボル名 59 * 60 * @return ハッシュ値 63 61 */ 64 62 … … 85 83 86 84 /*------------------------------------------------------------------------*/ 87 /** V{IuWFNgÌì¬88 * 89 * @param s [in] ¶ñ90 * 91 * @return V{IuWFNg85 /** シンボルオブジェクトの作成 86 * 87 * @param s [in] 文字列 88 * 89 * @return シンボルオブジェクト 92 90 */ 93 91 … … 123 121 124 122 /*------------------------------------------------------------------------*/ 125 /** V{e[uÌÊuõ 126 * 127 * @param r [in] V{e[u 128 * @param name [in] V{¶ñ 129 * @param hash [in] nbV 130 l 131 * @param st [in] JnÊ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 失敗 136 133 */ 137 134 … … 192 189 193 190 /*------------------------------------------------------------------------*/ 194 /** V{ÌbNAbv 195 * 196 * @param r [in] V{e[u 197 * @param name [in] V{¶ñ 198 * @param hash [in] nbV 199 l 200 * @param st [in] JnÊu 201 * 202 * @return V{IuWFNg 203 * 204 * @note ¢o^ÌêÍV{IuWFNgð쬵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 未登録の場合はシンボルオブジェクトを作成しシンボルテーブルに登録する 205 201 */ 206 202 … … 221 217 222 218 /*------------------------------------------------------------------------*/ 223 /** V{ÌbNAbv224 * 225 * @param r [in] V{e[u226 * @param name [in] V{¶ñ227 * @param st [in] JnÊu228 * 229 * @return V{IuWFNg219 /** シンボルのルックアップ 220 * 221 * @param r [in] シンボルテーブル 222 * @param name [in] シンボル文字列 223 * @param st [in] 開始位置 224 * 225 * @return シンボルオブジェクト 230 226 */ 231 227 … … 259 255 #pragma mark - 260 256 /*------------------------------------------------------------------------*/ 261 /** IuWFNgÌIuWFNg^CvÌæ¾262 * 263 * @param r [in] IuWFNg264 * @param detail [in] etO265 * 266 * @return IuWFNg^Cv257 /** オブジェクトのオブジェクトタイプの取得 258 * 259 * @param r [in] オブジェクト 260 * @param detail [in] リテラルフラグ 261 * 262 * @return オブジェクトタイプ 267 263 */ 268 264 … … 322 318 323 319 /*------------------------------------------------------------------------*/ 324 /** IuWFNgf[^ÌIuWFNg^CvÌæ¾325 * 326 * @param obj [in] IuWFNgf[^327 * @param detail [in] fBeCtO328 * 329 * @return IuWFNg^Cv320 /** オブジェクトデータのオブジェクトタイプの取得 321 * 322 * @param obj [in] オブジェクトデータ 323 * @param detail [in] ディテイルフラグ 324 * 325 * @return オブジェクトタイプ 330 326 */ 331 327 … … 369 365 #pragma mark - 370 366 /*------------------------------------------------------------------------*/ 371 /** IuWFNgf[^ÌÀf[^TCYðvZ372 * 373 * @param n [in] f[^TCY374 * 375 * @return Àf[^TCY367 /** オブジェクトデータの実データサイズを計算 368 * 369 * @param n [in] データサイズ 370 * 371 * @return 実データサイズ 376 372 */ 377 373 … … 386 382 387 383 /*------------------------------------------------------------------------*/ 388 /** IuWFNgf[^ÌmÛ389 * 390 * @param pool [in] v[391 * @param n [in] f[^TCY392 * @param literal [in] etO393 * 394 * @return IuWFNgf[^384 /** オブジェクトデータのメモリ確保 385 * 386 * @param pool [in] メモリプール 387 * @param n [in] データサイズ 388 * @param literal [in] リテラルフラグ 389 * 390 * @return オブジェクトデータ 395 391 */ 396 392 … … 416 412 417 413 /*------------------------------------------------------------------------*/ 418 /** IuWFNgÌmÛ419 * 420 * @param r [in] NX^}bv421 * @param n [in] TCY422 * @param type [in] IuWFNg^Cv423 * @param literal [in] etO424 * 425 * @return IuWFNg414 /** オブジェクトのメモリ確保 415 * 416 * @param r [in] クラス/マップ 417 * @param n [in] サイズ 418 * @param type [in] オブジェクトタイプ 419 * @param literal [in] リテラルフラグ 420 * 421 * @return オブジェクト 426 422 */ 427 423 … … 448 444 449 445 /*------------------------------------------------------------------------*/ 450 /** IuWFNgf[^ÌÄmÛ451 * 452 * @param pool [in] v[453 * @param obj [in] IuWFNgf[^454 * @param n [in] TCY455 * 456 * @return IuWFNgf[^446 /** オブジェクトデータのメモリ再確保 447 * 448 * @param pool [in] メモリプール 449 * @param obj [in] オブジェクトデータ 450 * @param n [in] サイズ 451 * 452 * @return オブジェクトデータ 457 453 */ 458 454 … … 488 484 489 485 /*------------------------------------------------------------------------*/ 490 /** IuWFNgf[^ÌTCYÏX491 * 492 * @param obj [in] IuWFNgf[^493 * @param n [in] TCY494 * 495 * @return IuWFNgf[^486 /** オブジェクトデータのサイズ変更 487 * 488 * @param obj [in] オブジェクトデータ 489 * @param n [in] サイズ 490 * 491 * @return オブジェクトデータ 496 492 */ 497 493 … … 509 505 510 506 /*------------------------------------------------------------------------*/ 511 /** IuWFNgf[^Ìf[^ðæ¾512 * 513 * @param obj [in] IuWFNgf[^514 * 515 * @return f[^507 /** オブジェクトデータのデータ部を取得 508 * 509 * @param obj [in] オブジェクトデータ 510 * 511 * @return データ部 516 512 */ 517 513 … … 530 526 531 527 /*------------------------------------------------------------------------*/ 532 /** IuWFNÌN[¡»533 * 534 * @param r [in] IuWFNg535 * 536 * @return N[¡»³ê½IuWFNg528 /** オブジェクのクローン複製 529 * 530 * @param r [in] オブジェクト 531 * 532 * @return クローン複製されたオブジェクト 537 533 */ 538 534 … … 594 590 595 591 /*------------------------------------------------------------------------*/ 596 /** IuWFNÌe»597 * 598 * @param r [in] IuWFNg599 * 600 * @return e»³ê½IuWFNg592 /** オブジェクのリテラル化 593 * 594 * @param r [in] オブジェクト 595 * 596 * @return リテラル化されたオブジェクト 601 597 */ 602 598 … … 655 651 newObj->header.h |= kNewtObjLiteral; 656 652 657 // obj ð free µÄÍ¢¯È¢658 // GC ÉÜ©¹é653 // obj を free してはいけない 654 // GC にまかせる 659 655 660 656 return NewtMakePointer(newObj); … … 668 664 #pragma mark - 669 665 /*------------------------------------------------------------------------*/ 670 /** IuWFNÌf[^ðobt@Éæo·671 * 672 * @param r [in] IuWFNg673 * @param data [out] obt@674 * @param len [in] obt@·675 * 676 * @return ȵ666 /** オブジェクのデータ部をバッファに取出す 667 * 668 * @param r [in] オブジェクト 669 * @param data [out]バッファ 670 * @param len [in] バッファ長 671 * 672 * @return なし 677 673 */ 678 674 … … 691 687 #pragma mark - 692 688 /*------------------------------------------------------------------------*/ 693 /** IuWFNgªe©`FbN·é694 * 695 * @param r [in] IuWFNg696 * 697 * @retval true e698 * @retval false eÅÈ¢689 /** オブジェクトがリテラルかチェックする 690 * 691 * @param r [in] オブジェクト 692 * 693 * @retval true リテラル 694 * @retval false リテラルでない 699 695 */ 700 696 … … 715 711 716 712 /*------------------------------------------------------------------------*/ 717 /** IuWFNÉXEB[vtOª§ÁÄ¢é©`FbN·é718 * 719 * @param r [in] IuWFNg720 * @param mark [in] }[N721 * 722 * @retval true XEB[vtOª§ÁÄ¢é723 * @retval false XEB[vtOª§ÁĢȢ713 /** オブジェクにスウィープフラグが立っているかチェックする 714 * 715 * @param r [in] オブジェクト 716 * @param mark [in] マーク 717 * 718 * @retval true スウィープフラグが立っている 719 * @retval false スウィープフラグが立っていない 724 720 */ 725 721 … … 740 736 741 737 /*------------------------------------------------------------------------*/ 742 /** IuWFNgª NIL ©`FbN·é743 * 744 * @param r [in] IuWFNg745 * 746 * @retval true NIL ܽÍ#UNBIND747 * @retval false NIL ÅÈ¢738 /** オブジェクトが NIL かチェックする 739 * 740 * @param r [in] オブジェクト 741 * 742 * @retval true NIL または #UNBIND 743 * @retval false NIL でない 748 744 */ 749 745 … … 755 751 756 752 /*------------------------------------------------------------------------*/ 757 /** IuWFNgªV{©`FbN·é758 * 759 * @param r [in] IuWFNg760 * 761 * @retval true V{762 * @retval false V{ÅÈ¢753 /** オブジェクトがシンボルかチェックする 754 * 755 * @param r [in] オブジェクト 756 * 757 * @retval true シンボル 758 * @retval false シンボルでない 763 759 */ 764 760 … … 770 766 771 767 /*------------------------------------------------------------------------*/ 772 /** IuWFNgÌnbV 773 lðæ¾·é 774 * 775 * @param r [in] IuWFNg 776 * 777 * @return nbV 778 l 768 /** オブジェクトのハッシュ値を取得する 769 * 770 * @param r [in] オブジェクト 771 * 772 * @return ハッシュ値 779 773 */ 780 774 … … 793 787 794 788 /*------------------------------------------------------------------------*/ 795 /** IuWFNgª¶ñ©`FbN·é796 * 797 * @param r [in] IuWFNg798 * 799 * @retval true ¶ñ800 * @retval false ¶ñÅÈ¢789 /** オブジェクトが文字列かチェックする 790 * 791 * @param r [in] オブジェクト 792 * 793 * @retval true 文字列 794 * @retval false 文字列でない 801 795 */ 802 796 … … 808 802 809 803 /*------------------------------------------------------------------------*/ 810 /** IuWFNgª®©`FbN·é811 * 812 * @param r [in] IuWFNg813 * 814 * @retval true ®815 * @retval false ®ÅÈ¢804 /** オブジェクトが整数かチェックする 805 * 806 * @param r [in] オブジェクト 807 * 808 * @retval true 整数 809 * @retval false 整数でない 816 810 */ 817 811 … … 823 817 824 818 /*------------------------------------------------------------------------*/ 825 /** ®IuWFNð®É·é826 * 827 * @param r [in] IuWFNg828 * 829 * @return ®819 /** 整数オブジェクを整数にする 820 * 821 * @param r [in] オブジェクト 822 * 823 * @return 整数 830 824 */ 831 825 … … 844 838 845 839 /*------------------------------------------------------------------------*/ 846 /** IuWFNgª32bit®©`FbN·é847 * 848 * @param r [in] IuWFNg849 * 850 * @retval true 32bit ®851 * @retval false 32bit ®ÅÈ¢840 /** オブジェクトが32bit整数かチェックする 841 * 842 * @param r [in] オブジェクト 843 * 844 * @retval true 32bit整数 845 * @retval false 32bit整数でない 852 846 */ 853 847 … … 859 853 860 854 /*------------------------------------------------------------------------*/ 861 /** IuWFNgª®¬_©`FbN·é862 * 863 * @param r [in] IuWFNg864 * 865 * @retval true ®¬_866 * @retval false ®¬_ÅÈ¢855 /** オブジェクトが浮動小数点かチェックする 856 * 857 * @param r [in] オブジェクト 858 * 859 * @retval true 浮動小数点 860 * @retval false 浮動小数点でない 867 861 */ 868 862 … … 874 868 875 869 /*------------------------------------------------------------------------*/ 876 /** lIuWFNð®¬_É·é877 * 878 * @param r [in] IuWFNg879 * 880 * @return ®¬_870 /** 数値オブジェクを浮動小数点にする 871 * 872 * @param r [in] オブジェクト 873 * 874 * @return 浮動小数点 881 875 */ 882 876 … … 895 889 896 890 /*------------------------------------------------------------------------*/ 897 /** IuWFNgªoCiIuWFNg©`FbN·é898 * 899 * @param r [in] IuWFNg900 * 901 * @retval true oCiIuWFNg902 * @retval false oCiIuWFNgÅÈ¢891 /** オブジェクトがバイナリオブジェクトかチェックする 892 * 893 * @param r [in] オブジェクト 894 * 895 * @retval true バイナリオブジェクト 896 * @retval false バイナリオブジェクトでない 903 897 */ 904 898 … … 919 913 920 914 /*------------------------------------------------------------------------*/ 921 /** IuWFNgÌIuWFNgf[^ðæ¾·é922 * 923 * @param r [in] IuWFNg924 * 925 * @return IuWFNgf[^915 /** オブジェクトのオブジェクトデータを取得する 916 * 917 * @param r [in] オブジェクト 918 * 919 * @return オブジェクトデータ 926 920 */ 927 921 … … 937 931 938 932 /*------------------------------------------------------------------------*/ 939 /** IuWFNgªzñIuWFNg©`FbN·é940 * 941 * @param r [in] IuWFNg942 * 943 * @retval true zñIuWFNg944 * @retval false zñIuWFNgÅÈ¢933 /** オブジェクトが配列オブジェクトかチェックする 934 * 935 * @param r [in] オブジェクト 936 * 937 * @retval true 配列オブジェクト 938 * @retval false 配列オブジェクトでない 945 939 */ 946 940 … … 952 946 953 947 /*------------------------------------------------------------------------*/ 954 /** IuWFNgªt[IuWFNg©`FbN·é955 * 956 * @param r [in] IuWFNg957 * 958 * @retval true t[IuWFNg959 * @retval false t[IuWFNgÅÈ¢948 /** オブジェクトがフレームオブジェクトかチェックする 949 * 950 * @param r [in] オブジェクト 951 * 952 * @retval true フレームオブジェクト 953 * @retval false フレームオブジェクトでない 960 954 */ 961 955 … … 967 961 968 962 /*------------------------------------------------------------------------*/ 969 /** IuWFNgªt[ܽÍzñIuWFNg©`FbN·é970 * 971 * @param r [in] IuWFNg972 * 973 * @retval true t[ܽÍzñIuWFNg974 * @retval false t[ܽÍzñIuWFNgÅÈ¢963 /** オブジェクトがフレームまたは配列オブジェクトかチェックする 964 * 965 * @param r [in] オブジェクト 966 * 967 * @retval true フレームまたは配列オブジェクト 968 * @retval false フレームまたは配列オブジェクトでない 975 969 */ 976 970 … … 985 979 986 980 /*------------------------------------------------------------------------*/ 987 /** IuWFNgªC~fBGCgi¦lj©`FbN·é988 * 989 * @param r [in] IuWFNg990 * 991 * @retval true C~fBGCgÅ é992 * @retval false C~fBGCgÅÈ¢981 /** オブジェクトがイミディエイト(即値)かチェックする 982 * 983 * @param r [in] オブジェクト 984 * 985 * @retval true イミディエイトである 986 * @retval false イミディエイトでない 993 987 */ 994 988 … … 1005 999 1006 1000 /*------------------------------------------------------------------------*/ 1007 /** IuWFNgªR[hubNiÖIuWFNgj©`FbN·é1008 * 1009 * @param r [in] IuWFNg1010 * 1011 * @retval true R[hubN1012 * @retval false R[hubNÅÈ¢1001 /** オブジェクトがコードブロック(関数オブジェクト)かチェックする 1002 * 1003 * @param r [in] オブジェクト 1004 * 1005 * @retval true コードブロック 1006 * @retval false コードブロックでない 1013 1007 */ 1014 1008 … … 1030 1024 1031 1025 /*------------------------------------------------------------------------*/ 1032 /** IuWFNgªlCeBuÖircvrȵÖIuWFNgj©`FbN·é1033 * 1034 * @param r [in] IuWFNg1035 * 1036 * @retval true lCeBuÖ1037 * @retval false lCeBuÖÅÈ¢1026 /** オブジェクトがネイティブ関数(rcvrなし関数オブジェクト)かチェックする 1027 * 1028 * @param r [in] オブジェクト 1029 * 1030 * @retval true ネイティブ関数 1031 * @retval false ネイティブ関数でない 1038 1032 */ 1039 1033 … … 1048 1042 1049 1043 /*------------------------------------------------------------------------*/ 1050 /** IuWFNgªlCeBuÖircvr èÖIuWFNgj©`FbN·é1051 * 1052 * @param r [in] IuWFNg1053 * 1054 * @retval true lCeBuÖ1055 * @retval false lCeBuÖÅÈ¢1044 /** オブジェクトがネイティブ関数(rcvrあり関数オブジェクト)かチェックする 1045 * 1046 * @param r [in] オブジェクト 1047 * 1048 * @retval true ネイティブ関数 1049 * @retval false ネイティブ関数でない 1056 1050 */ 1057 1051 … … 1066 1060 1067 1061 /*------------------------------------------------------------------------*/ 1068 /** IuWFNgªÖIuWFNg©`FbN·é1069 * 1070 * @param r [in] IuWFNg1071 * 1072 * @retval true ÖIuWFNg1073 * @retval false ÖIuWFNgÅÈ¢1062 /** オブジェクトが関数オブジェクトかチェックする 1063 * 1064 * @param r [in] オブジェクト 1065 * 1066 * @retval true 関数オブジェクト 1067 * @retval false 関数オブジェクトでない 1074 1068 */ 1075 1069 … … 1081 1075 1082 1076 /*------------------------------------------------------------------------*/ 1083 /** ÖIuWFNgÌ^Cvðæ¾·é1084 * 1085 * @param r [in] IuWFNg1086 * 1087 * @retval kNewtNotFunction ÖIuWFNgÅÈ¢1088 * @retval kNewtCodeBlock oCgR[hÖ1089 * @retval kNewtNativeFn lCeBuÖircvrȵAOld Stylej1090 * @retval kNewtNativeFunc lCeBuÖircvr èANew Stylej1077 /** 関数オブジェクトのタイプを取得する 1078 * 1079 * @param r [in] オブジェクト 1080 * 1081 * @retval kNewtNotFunction 関数オブジェクトでない 1082 * @retval kNewtCodeBlock バイトコード関数 1083 * @retval kNewtNativeFn ネイティブ関数(rcvrなし、Old Style) 1084 * @retval kNewtNativeFunc ネイティブ関数(rcvrあり、New Style) 1091 1085 */ 1092 1086 … … 1114 1108 1115 1109 /*------------------------------------------------------------------------*/ 1116 /** IuWFNgª³K\»IuWFNg©`FbN·é1117 * 1118 * @param r [in] IuWFNg1119 * 1120 * @retval true ³K\»IuWFNg1121 * @retval false ³K\»IuWFNgÅÈ¢1110 /** オブジェクトが正規表現オブジェクトかチェックする 1111 * 1112 * @param r [in] オブジェクト 1113 * 1114 * @retval true 正規表現オブジェクト 1115 * @retval false 正規表現オブジェクトでない 1122 1116 */ 1123 1117 … … 1139 1133 1140 1134 /*------------------------------------------------------------------------*/ 1141 /** ®IuWFNgðAhXÉÏ··é1142 * 1143 * @param r [in] IuWFNg1144 * 1145 * @return AhX1135 /** 整数オブジェクトをアドレスに変換する 1136 * 1137 * @param r [in] オブジェクト 1138 * 1139 * @return アドレス 1146 1140 */ 1147 1141 … … 1157 1151 #pragma mark - 1158 1152 /*------------------------------------------------------------------------*/ 1159 /** oCiIuWFNgð쬷é1160 * 1161 * @param klass [in] NX1162 * @param data [in] ú»f[^1163 * @param size [in] TCY1164 * @param literal [in] etO1165 * 1166 * @return oCiIuWFNg1153 /** バイナリオブジェクトを作成する 1154 * 1155 * @param klass [in] クラス 1156 * @param data [in] 初期化データ 1157 * @param size [in] サイズ 1158 * @param literal [in] リテラルフラグ 1159 * 1160 * @return バイナリオブジェクト 1167 1161 */ 1168 1162 … … 1203 1197 1204 1198 /*------------------------------------------------------------------------*/ 1205 /** oCiIuWFNgÌIuWFNgf[^ÌTCYðÏX·é1206 * 1207 * @param obj [in] IuWFNgf[^1208 * @param n [in] TCY1209 * 1210 * @return TCYÌÏX³ê½IuWFNgf[^1199 /** バイナリオブジェクトのオブジェクトデータのサイズを変更する 1200 * 1201 * @param obj [in] オブジェクトデータ 1202 * @param n [in] サイズ 1203 * 1204 * @return サイズの変更されたオブジェクトデータ 1211 1205 */ 1212 1206 … … 1218 1212 1219 1213 /*------------------------------------------------------------------------*/ 1220 /** oCiIuWFNgÌTCYðÏX·é1221 * 1222 * @param r [in] IuWFNg1223 * @param n [in] TCY1224 * 1225 * @return IuWFNg1214 /** バイナリオブジェクトのサイズを変更する 1215 * 1216 * @param r [in] オブジェクト 1217 * @param n [in] サイズ 1218 * 1219 * @return オブジェクト 1226 1220 */ 1227 1221 … … 1238 1232 1239 1233 /*------------------------------------------------------------------------*/ 1240 /** V{IuWFNgð쬷é1241 * 1242 * @param s [in] ¶ñ1243 * 1244 * @return V{IuWFNg1245 * 1246 * @note V{ªùɶݷéêÍ쬹¸ÉùÉ éV{IuWFNgðÔ·1234 /** シンボルオブジェクトを作成する 1235 * 1236 * @param s [in] 文字列 1237 * 1238 * @return シンボルオブジェクト 1239 * 1240 * @note シンボルが既に存在する場合は作成せずに既にあるシンボルオブジェクトを返す 1247 1241 */ 1248 1242 … … 1254 1248 1255 1249 /*------------------------------------------------------------------------*/ 1256 /** V{ÌIuWFNgf[^Ì·³ðæ¾·é1257 * 1258 * @param obj [in] IuWFNgf[^1259 * 1260 * @return ·³1250 /** シンボルのオブジェクトデータの長さを取得する 1251 * 1252 * @param obj [in] オブジェクトデータ 1253 * 1254 * @return 長さ 1261 1255 */ 1262 1256 … … 1271 1265 1272 1266 /*------------------------------------------------------------------------*/ 1273 /** ¶ñIuWFNgð쬷é1274 * 1275 * @param s [in] ¶ñ1276 * @param literal [in] etO1277 * 1278 * @return ¶ñIuWFNg1267 /** 文字列オブジェクトを作成する 1268 * 1269 * @param s [in] 文字列 1270 * @param literal [in] リテラルフラグ 1271 * 1272 * @return 文字列オブジェクト 1279 1273 */ 1280 1274 … … 1286 1280 1287 1281 /*------------------------------------------------------------------------*/ 1288 /** ·³ðwèµÄ¶ñIuWFNgð쬷é1289 * 1290 * @param s [in] ¶ñ1291 * @param len [in] ¶ñÌ·³1292 * @param literal [in] etO1293 * 1294 * @return ¶ñIuWFNg1282 /** 長さを指定して文字列オブジェクトを作成する 1283 * 1284 * @param s [in] 文字列 1285 * @param len [in] 文字列の長さ 1286 * @param literal [in] リテラルフラグ 1287 * 1288 * @return 文字列オブジェクト 1295 1289 */ 1296 1290 … … 1323 1317 1324 1318 /*------------------------------------------------------------------------*/ 1325 /** ¶ñIuWFNgÌIuWFNgf[^Ì·³ðæ¾·é1326 * 1327 * @param obj [in] IuWFNgf[^1328 * 1329 * @return ·³1319 /** 文字列オブジェクトのオブジェクトデータの長さを取得する 1320 * 1321 * @param obj [in] オブジェクトデータ 1322 * 1323 * @return 長さ 1330 1324 */ 1331 1325 … … 1340 1334 1341 1335 /*------------------------------------------------------------------------*/ 1342 /** ¶ñIuWFNgÌIuWFNgf[^Ì·³ðÏX·é1343 * 1344 * @param obj [in] IuWFNgf[^1345 * @param len [in] ·³1346 * 1347 * @return ·³ªÏX³ê½IuWFNgf[^1336 /** 文字列オブジェクトのオブジェクトデータの長さを変更する 1337 * 1338 * @param obj [in] オブジェクトデータ 1339 * @param len [in] 長さ 1340 * 1341 * @return 長さが変更されたオブジェクトデータ 1348 1342 */ 1349 1343 … … 1355 1349 1356 1350 /*------------------------------------------------------------------------*/ 1357 /** ¶ñIuWFNgÌ·³ðÏX·é1358 * 1359 * @param r [in] IuWFNg1360 * @param n [in] ·³1361 * 1362 * @return IuWFNg1351 /** 文字列オブジェクトの長さを変更する 1352 * 1353 * @param r [in] オブジェクト 1354 * @param n [in] 長さ 1355 * 1356 * @return オブジェクト 1363 1357 */ 1364 1358 … … 1375 1369 1376 1370 /*------------------------------------------------------------------------*/ 1377 /** ®IuWFNgð쬷é1378 * 1379 * @param v [in] ®1380 * 1381 * @return ®IuWFNg1371 /** 整数オブジェクトを作成する 1372 * 1373 * @param v [in] 整数 1374 * 1375 * @return 整数オブジェクト 1382 1376 */ 1383 1377 … … 1385 1379 { 1386 1380 if (-536870912 <= v && v <= 536870911) 1387 { // 30bit ÈàÌê1381 { // 30bit 以内の場合 1388 1382 return NewtMakeInt30(v); 1389 1383 } … … 1396 1390 1397 1391 /*------------------------------------------------------------------------*/ 1398 /** 32bit ®IuWFNgð쬷é1399 * 1400 * @param v [in] ®1401 * 1402 * @return 32bit ®IuWFNg1392 /** 32bit整数オブジェクトを作成する 1393 * 1394 * @param v [in] 整数 1395 * 1396 * @return 32bit整数オブジェクト 1403 1397 */ 1404 1398 … … 1410 1404 1411 1405 /*------------------------------------------------------------------------*/ 1412 /** ®¬_IuWFNgð쬷é1413 * 1414 * @param v [in] ®¬_1415 * 1416 * @return ®¬_IuWFNg1406 /** 浮動小数点オブジェクトを作成する 1407 * 1408 * @param v [in] 浮動小数点 1409 * 1410 * @return 浮動小数点オブジェクト 1417 1411 */ 1418 1412 … … 1424 1418 1425 1419 /*------------------------------------------------------------------------*/ 1426 /** zñIuWFNgð쬷é1427 * 1428 * @param klass [in] NX1429 * @param n [in] ·³1430 * 1431 * @return zñIuWFNg1420 /** 配列オブジェクトを作成する 1421 * 1422 * @param klass [in] クラス 1423 * @param n [in] 長さ 1424 * 1425 * @return 配列オブジェクト 1432 1426 */ 1433 1427 … … 1456 1450 1457 1451 /*------------------------------------------------------------------------*/ 1458 /** zñIuWFNgð쬵Äú»·é1459 * 1460 * @param klass [in] NX1461 * @param n [in] ·³1462 * @param v [in] ú»f[^1463 * 1464 * @return zñIuWFNg1452 /** 配列オブジェクトを作成して初期化する 1453 * 1454 * @param klass [in] クラス 1455 * @param n [in] 長さ 1456 * @param v [in] 初期化データ 1457 * 1458 * @return 配列オブジェクト 1465 1459 */ 1466 1460 … … 1479 1473 1480 1474 /*------------------------------------------------------------------------*/ 1481 /** }bvð쬵Äú»·é1482 * 1483 * @param superMap [in] X[p}bv1484 * @param n [in] ·³1485 * @param v [in] ú»f[^1486 * 1487 * @return }bvIuWFNg1475 /** マップを作成して初期化する 1476 * 1477 * @param superMap [in] スーパマップ 1478 * @param n [in] 長さ 1479 * @param v [in] 初期化データ 1480 * 1481 * @return マップオブジェクト 1488 1482 */ 1489 1483 … … 1529 1523 1530 1524 /*------------------------------------------------------------------------*/ 1531 /** }bvÉtOðZbg·é1532 * 1533 * @param map [in] }bvIuWFNg1534 * @param bit [in] tO1535 * 1536 * @return ȵ1525 /** マップにフラグをセットする 1526 * 1527 * @param map [in] マップオブジェクト 1528 * @param bit [in] フラグ 1529 * 1530 * @return なし 1537 1531 */ 1538 1532 … … 1548 1542 1549 1543 /*------------------------------------------------------------------------*/ 1550 /** }bvÌtOðNA·é1551 * 1552 * @param map [in] }bvIuWFNg1553 * @param bit [in] tO1554 * 1555 * @return ȵ1544 /** マップのフラグをクリアする 1545 * 1546 * @param map [in] マップオブジェクト 1547 * @param bit [in] フラグ 1548 * 1549 * @return なし 1556 1550 */ 1557 1551 … … 1567 1561 1568 1562 /*------------------------------------------------------------------------*/ 1569 /** }bvÌ·³ðæ¾·é1570 * 1571 * @param map [in] }bvIuWFNg1572 * 1573 * @return ·³1563 /** マップの長さを取得する 1564 * 1565 * @param map [in] マップオブジェクト 1566 * 1567 * @return 長さ 1574 1568 */ 1575 1569 … … 1592 1586 1593 1587 /*------------------------------------------------------------------------*/ 1594 /** t[IuWFNgð쬷é1595 * 1596 * @param map [in] }bv1597 * @param n [in] ·³1598 * 1599 * @return t[IuWFNg1588 /** フレームオブジェクトを作成する 1589 * 1590 * @param map [in] マップ 1591 * @param n [in] 長さ 1592 * 1593 * @return フレームオブジェクト 1600 1594 */ 1601 1595 … … 1614 1608 1615 1609 /*------------------------------------------------------------------------*/ 1616 /** t[IuWFNgð쬵Äú»·é1617 * 1618 * @param n [in] ·³1619 * @param v [in] ú»f[^1620 * 1621 * @return t[IuWFNg1610 /** フレームオブジェクトを作成して初期化する 1611 * 1612 * @param n [in] 長さ 1613 * @param v [in] 初期化データ 1614 * 1615 * @return フレームオブジェクト 1622 1616 */ 1623 1617 … … 1638 1632 1639 1633 /*------------------------------------------------------------------------*/ 1640 /** XbgIuWFNgð쬷é1641 * 1642 * @param r [in] NX^}bv1643 * @param n [in] ·³1644 * @param type [in] ^Cv1645 * 1646 * @return IuWFNg1634 /** スロットオブジェクトを作成する 1635 * 1636 * @param r [in] クラス/マップ 1637 * @param n [in] 長さ 1638 * @param type [in] タイプ 1639 * 1640 * @return オブジェクト 1647 1641 */ 1648 1642 … … 1675 1669 1676 1670 /*------------------------------------------------------------------------*/ 1677 /** XbgIuWFNgÌIuWFNgf[^Ì·³ðæ¾·é1678 * 1679 * @param obj [in] IuWFNgf[^1680 * 1681 * @return ·³1671 /** スロットオブジェクトのオブジェクトデータの長さを取得する 1672 * 1673 * @param obj [in] オブジェクトデータ 1674 * 1675 * @return 長さ 1682 1676 */ 1683 1677 … … 1689 1683 1690 1684 /*------------------------------------------------------------------------*/ 1691 /** XbgIuWFNgÌIuWFNgf[^Ì·³ðÏX·é1692 * 1693 * @param obj [in] IuWFNgf[^1694 * @param n [in] ·³1695 * @param v [in] ú»f[^1696 * 1697 * @return ·³ÌÏX³ê½IuWFNgf[^1685 /** スロットオブジェクトのオブジェクトデータの長さを変更する 1686 * 1687 * @param obj [in] オブジェクトデータ 1688 * @param n [in] 長さ 1689 * @param v [in] 初期化データ 1690 * 1691 * @return 長さの変更されたオブジェクトデータ 1698 1692 */ 1699 1693 … … 1725 1719 1726 1720 /*------------------------------------------------------------------------*/ 1727 /** XbgIuWFNgÌIuWFNgf[^ÉlðÇÁ·é1728 * 1729 * @param obj [in] IuWFNgf[^1730 * @param v [in] lIuWFNg1731 * 1732 * @return lIuWFNg1721 /** スロットオブジェクトのオブジェクトデータに値を追加する 1722 * 1723 * @param obj [in] オブジェクトデータ 1724 * @param v [in] 値オブジェクト 1725 * 1726 * @return 値オブジェクト 1733 1727 */ 1734 1728 … … 1745 1739 1746 1740 /*------------------------------------------------------------------------*/ 1747 /** XbgIuWFNgÌ·³ðÏX·é1748 * 1749 * @param r [in] IuWFNg1750 * @param n [in] ·³1751 * @param v [in] ú»f[^1752 * 1753 * @return ·³ÌÏX³ê½IuWFNg1741 /** スロットオブジェクトの長さを変更する 1742 * 1743 * @param r [in] オブジェクト 1744 * @param n [in] 長さ 1745 * @param v [in] 初期化データ 1746 * 1747 * @return 長さの変更されたオブジェクト 1754 1748 */ 1755 1749 … … 1766 1760 1767 1761 /*------------------------------------------------------------------------*/ 1768 /** IuWFNgÌ·³ðÏX·é1769 * 1770 * @param r [in] IuWFNg1771 * @param n [in] ·³1772 * 1773 * @return ·³ÌÏX³ê½IuWFNg1762 /** オブジェクトの長さを変更する 1763 * 1764 * @param r [in] オブジェクト 1765 * @param n [in] 長さ 1766 * 1767 * @return 長さの変更されたオブジェクト 1774 1768 */ 1775 1769 … … 1801 1795 1802 1796 /*------------------------------------------------------------------------*/ 1803 /** AhX©ç®IuWFNgð쬷é1804 * 1805 * @param addr [in] AhX1806 * 1807 * @return ®IuWFNg1797 /** アドレスから整数オブジェクトを作成する 1798 * 1799 * @param addr [in] アドレス 1800 * 1801 * @return 整数オブジェクト 1808 1802 */ 1809 1803 … … 1816 1810 #pragma mark - 1817 1811 /*------------------------------------------------------------------------*/ 1818 /** G[ÔÌáOð¶·é1819 * 1820 * @param err [in] G[Ô1812 /** エラー番号の例外を発生する 1813 * 1814 * @param err [in] エラー番号 1821 1815 * 1822 1816 * @return kNewtRefUnbind … … 1830 1824 1831 1825 /*------------------------------------------------------------------------*/ 1832 /** G[ÔÉηéáOV{ð쬷é1833 * 1834 * @param err [in] G[Ô1835 * 1836 * @return áOV{1826 /** エラー番号に対応する例外シンボルを作成する 1827 * 1828 * @param err [in] エラー番号 1829 * 1830 * @return 例外シンボル 1837 1831 */ 1838 1832 … … 1878 1872 1879 1873 /*------------------------------------------------------------------------*/ 1880 /** G[ÔÆlIuWFNgðf[^ÉáOð¶·é1881 * 1882 * @param err [in] G[Ô1883 * @param value [in] lIuWFNg1874 /** エラー番号と値オブジェクトをデータに例外を発生する 1875 * 1876 * @param err [in] エラー番号 1877 * @param value [in] 値オブジェクト 1884 1878 * 1885 1879 * @return kNewtRefUnbind … … 1904 1898 1905 1899 /*------------------------------------------------------------------------*/ 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] シンボル 1910 1904 * 1911 1905 * @return kNewtRefUnbind … … 1930 1924 1931 1925 /*------------------------------------------------------------------------*/ 1932 /** Out Of Bounds G[ð¶·é1933 * 1934 * @param value [in] lIuWFNg1935 * @param index [in] Êu1926 /** Out Of Bounds エラーを発生する 1927 * 1928 * @param value [in] 値オブジェクト 1929 * @param index [in] 位置 1936 1930 * 1937 1931 * @return kNewtRefUnbind … … 1956 1950 1957 1951 /*------------------------------------------------------------------------*/ 1958 /** G[bZ[Wð\¦·é1959 * 1960 * @param err [in] G[Ô1961 * 1962 * @return ȵ1952 /** エラーメッセージを表示する 1953 * 1954 * @param err [in] エラー番号 1955 * 1956 * @return なし 1963 1957 */ 1964 1958 … … 1979 1973 #pragma mark - 1980 1974 /*------------------------------------------------------------------------*/ 1981 /** 32bit ®Ìär1982 * 1983 * @param r1 [in] 32bit ®P1984 * @param r2 [in] 32bit ®Q1975 /** 32bit整数の比較 1976 * 1977 * @param r1 [in] 32bit整数1 1978 * @param r2 [in] 32bit整数2 1985 1979 * 1986 1980 * @retval -1 r1 < r2 … … 2007 2001 2008 2002 /*------------------------------------------------------------------------*/ 2009 /** ®¬_Ìär2010 * 2011 * @param r1 [in] ®¬_P2012 * @param r2 [in] ®¬_Q2003 /** 浮動小数点の比較 2004 * 2005 * @param r1 [in] 浮動小数点1 2006 * @param r2 [in] 浮動小数点2 2013 2007 * 2014 2008 * @retval -1 r1 < r2 … … 2035 2029 2036 2030 /*------------------------------------------------------------------------*/ 2037 /** V{ðåIÉäri嶬¶ÍæÊ³êÈ¢j2038 * 2039 * @param r1 [in] V{P2040 * @param r2 [in] V{Q2041 * 2042 * @retval Ì®r1 < r22031 /** シンボルを字句的に比較(大文字小文字は区別されない) 2032 * 2033 * @param r1 [in] シンボル1 2034 * @param r2 [in] シンボル2 2035 * 2036 * @retval 負の整数 r1 < r2 2043 2037 * @retval 0 r1 = r2 2044 * @retval ³Ì®r1 > r22038 * @retval 正の整数 r1 > r2 2045 2039 */ 2046 2040 … … 2061 2055 2062 2056 /*------------------------------------------------------------------------*/ 2063 /** ¶ñIuWFNgÌär2064 * 2065 * @param r1 [in] ¶ñIuWFNgP2066 * @param r2 [in] ¶ñIuWFNgQ2067 * 2068 * @retval Ì®r1 < r22057 /** 文字列オブジェクトの比較 2058 * 2059 * @param r1 [in] 文字列オブジェクト1 2060 * @param r2 [in] 文字列オブジェクト2 2061 * 2062 * @retval 負の整数 r1 < r2 2069 2063 * @retval 0 r1 = r2 2070 * @retval ³Ì®r1 > r22064 * @retval 正の整数 r1 > r2 2071 2065 */ 2072 2066 … … 2084 2078 2085 2079 /*------------------------------------------------------------------------*/ 2086 /** oCiIuWFNgÌär2087 * 2088 * @param r1 [in] oCiIuWFNgP2089 * @param r2 [in] oCiIuWFNgQ2080 /** バイナリオブジェクトの比較 2081 * 2082 * @param r1 [in] バイナリオブジェクト1 2083 * @param r2 [in] バイナリオブジェクト2 2090 2084 * 2091 2085 * @retval -1 r1 < r2 … … 2133 2127 #pragma mark - 2134 2128 /*------------------------------------------------------------------------*/ 2135 /** vZÂ\ÈøÈçÎvZÊÌIuWFNg^CvðÔ·2136 * 2137 * @param r1 [in] IuWFNgP2138 * @param r2 [in] IuWFNgQ2139 * 2140 * @retval IuWFNg^Cv vZÂ\2141 * @retval kNewtUnknownType vZsÂ2129 /** 計算可能な引数ならば計算結果のオブジェクトタイプを返す 2130 * 2131 * @param r1 [in] オブジェクト1 2132 * @param r2 [in] オブジェクト2 2133 * 2134 * @retval オブジェクトタイプ 計算可能 2135 * @retval kNewtUnknownType 計算不可 2142 2136 */ 2143 2137 … … 2172 2166 2173 2167 /*------------------------------------------------------------------------*/ 2174 /** IuWFNgÌå¬är2175 * 2176 * @param r1 [in] IuWFNgP2177 * @param r2 [in] IuWFNgQ2168 /** オブジェクトの大小比較 2169 * 2170 * @param r1 [in] オブジェクト1 2171 * @param r2 [in] オブジェクト2 2178 2172 * 2179 2173 * @retval 1 r1 > r2 … … 2232 2226 2233 2227 /*------------------------------------------------------------------------*/ 2234 /** QÆÌär2235 * 2236 * @param r1 [in] QÆP2237 * @param r2 [in] QÆQ2238 * 2239 * @retval true ¯l2240 * @retval false ¯lÅÈ¢2228 /** 参照の比較 2229 * 2230 * @param r1 [in] 参照1 2231 * @param r2 [in] 参照2 2232 * 2233 * @retval true 同値 2234 * @retval false 同値でない 2241 2235 */ 2242 2236 … … 2269 2263 2270 2264 /*------------------------------------------------------------------------*/ 2271 /** IuWFNgÌär2272 * 2273 * @param r1 [in] IuWFNgP2274 * @param r2 [in] IuWFNgQ2275 * 2276 * @retval true ¯l2277 * @retval false ¯lÅÈ¢2265 /** オブジェクトの比較 2266 * 2267 * @param r1 [in] オブジェクト1 2268 * @param r2 [in] オブジェクト2 2269 * 2270 * @retval true 同値 2271 * @retval false 同値でない 2278 2272 */ 2279 2273 … … 2291 2285 2292 2286 /*------------------------------------------------------------------------*/ 2293 /** V{IuWFNgÌär2294 * 2295 * @param r1 [in] V{IuWFNgP2296 * @param r2 [in] V{IuWFNgQ2297 * 2298 * @retval true ¯l2299 * @retval false ¯lÅÈ¢2287 /** シンボルオブジェクトの比較 2288 * 2289 * @param r1 [in] シンボルオブジェクト1 2290 * @param r2 [in] シンボルオブジェクト2 2291 * 2292 * @retval true 同値 2293 * @retval false 同値でない 2300 2294 */ 2301 2295 … … 2326 2320 #pragma mark - 2327 2321 /*------------------------------------------------------------------------*/ 2328 /** IuWFNgÌ·³ðæ¾·é2329 * 2330 * @param r [in] IuWFNg2331 * 2332 * @return ·³2322 /** オブジェクトの長さを取得する 2323 * 2324 * @param r [in] オブジェクト 2325 * 2326 * @return 長さ 2333 2327 */ 2334 2328 … … 2359 2353 2360 2354 /*------------------------------------------------------------------------*/ 2361 /** IuWFNgÌi[¢j·³ðæ¾2362 * 2363 * @param r [in] IuWFNg2364 * 2365 * @return IuWFNgÌ·³2366 * 2367 * @note t[ÌêÍvgp³Å·³ðvZ·é2355 /** オブジェクトの(深い)長さを取得 2356 * 2357 * @param r [in] オブジェクト 2358 * 2359 * @return オブジェクトの長さ 2360 * 2361 * @note フレームの場合はプロト継承で長さを計算する 2368 2362 */ 2369 2363 … … 2388 2382 2389 2383 /*------------------------------------------------------------------------*/ 2390 /** oCiIuWFNgÌ·³ðæ¾2391 * 2392 * @param r [in] IuWFNg2393 * 2394 * @return IuWFNgÌ·³2384 /** バイナリオブジェクトの長さを取得 2385 * 2386 * @param r [in] オブジェクト 2387 * 2388 * @return オブジェクトの長さ 2395 2389 */ 2396 2390 … … 2412 2406 2413 2407 /*------------------------------------------------------------------------*/ 2414 /** V{IuWFNgÌ·³ðæ¾2415 * 2416 * @param r [in] IuWFNg2417 * 2418 * @return IuWFNgÌ·³2408 /** シンボルオブジェクトの長さを取得 2409 * 2410 * @param r [in] オブジェクト 2411 * 2412 * @return オブジェクトの長さ 2419 2413 */ 2420 2414 … … 2429 2423 2430 2424 /*------------------------------------------------------------------------*/ 2431 /** ¶ñIuWFNgÌ·³ðæ¾2432 * 2433 * @param r [in] IuWFNg2434 * 2435 * @return IuWFNgÌ·³2425 /** 文字列オブジェクトの長さを取得 2426 * 2427 * @param r [in] オブジェクト 2428 * 2429 * @return オブジェクトの長さ 2436 2430 */ 2437 2431 … … 2446 2440 2447 2441 /*------------------------------------------------------------------------*/ 2448 /** XbgIuWFNgÌ·³iXbgÌjðæ¾2449 * 2450 * @param r [in] IuWFNg2451 * 2452 * @return IuWFNgÌ·³2442 /** スロットオブジェクトの長さ(スロットの数)を取得 2443 * 2444 * @param r [in] オブジェクト 2445 * 2446 * @return オブジェクトの長さ 2453 2447 */ 2454 2448 … … 2463 2457 2464 2458 /*------------------------------------------------------------------------*/ 2465 /** vgp³Åt[IuWFNgÌ·³iXbgÌjðæ¾2466 * 2467 * @param r [in] IuWFNg2468 * 2469 * @return IuWFNgÌ·³2459 /** プロト継承でフレームオブジェクトの長さ(スロットの数)を取得 2460 * 2461 * @param r [in] オブジェクト 2462 * 2463 * @return オブジェクトの長さ 2470 2464 */ 2471 2465 … … 2496 2490 #pragma mark - 2497 2491 /*------------------------------------------------------------------------*/ 2498 /** t[ÌIuWFNgf[^ª _proto Xbgð©`FbN·é2499 * 2500 * @param obj [in] t[ÌIuWFNgf[^2501 * 2502 * @retval true _proto XbgðÂ2503 * @retval false _proto Xbgð½È¢2492 /** フレームのオブジェクトデータが _proto スロットを持つかチェックする 2493 * 2494 * @param obj [in] フレームのオブジェクトデータ 2495 * 2496 * @retval true _proto スロットを持つ 2497 * @retval false _proto スロットを持たない 2504 2498 */ 2505 2499 … … 2518 2512 2519 2513 /*------------------------------------------------------------------------*/ 2520 /** t[ÌIuWFNgf[^©çXbgÌlðæo·2521 * 2522 * @param obj [in] t[ÌIuWFNgf[^2523 * @param slot [in] XbgV{2524 * 2525 * @return lIuWFNg2514 /** フレームのオブジェクトデータからスロットの値を取出す 2515 * 2516 * @param obj [in] フレームのオブジェクトデータ 2517 * @param slot [in] スロットシンボル 2518 * 2519 * @return 値オブジェクト 2526 2520 */ 2527 2521 … … 2549 2543 2550 2544 /*------------------------------------------------------------------------*/ 2551 /** }bvÌ\[gtOð`FbN·é2552 * 2553 * @param r [in] }bvIuWFNg2554 * 2555 * @retval true \[gtOªON2556 * @retval false \[gtOªOFF2545 /** マップのソートフラグをチェックする 2546 * 2547 * @param r [in] マップオブジェクト 2548 * 2549 * @retval true ソートフラグが ON 2550 * @retval false ソートフラグが OFF 2557 2551 */ 2558 2552 … … 2572 2566 2573 2567 /*------------------------------------------------------------------------*/ 2574 /** t[ÌIuWFNgf[^ÉXbgÌlðZbg·é2575 * 2576 * @param obj [in] t[ÌIuWFNgf[^2577 * @param slot [in] XbgV{2578 * @param v [in] lIuWFNg2579 * 2580 * @return lIuWFNg2568 /** フレームのオブジェクトデータにスロットの値をセットする 2569 * 2570 * @param obj [in] フレームのオブジェクトデータ 2571 * @param slot [in] スロットシンボル 2572 * @param v [in] 値オブジェクト 2573 * 2574 * @return 値オブジェクト 2581 2575 */ 2582 2576 … … 2619 2613 if (NewtMapIsSorted(obj->as.map)) 2620 2614 { 2621 // }bvª\[g³êÄ¢éê...2615 // マップがソートされている場合... 2622 2616 2623 2617 newtSymDataRef sym; … … 2647 2641 2648 2642 /*------------------------------------------------------------------------*/ 2649 /** zñÌIuWFNgf[^©çwèÊuÌvfðí·é2650 * 2651 * @param obj [in] zñÌIuWFNgf[^2652 * @param n [in] Êu2653 * 2654 * @return ȵ2643 /** 配列のオブジェクトデータから指定位置の要素を削除する 2644 * 2645 * @param obj [in] 配列のオブジェクトデータ 2646 * @param n [in] 位置 2647 * 2648 * @return なし 2655 2649 */ 2656 2650 … … 2680 2674 2681 2675 /*------------------------------------------------------------------------*/ 2682 /** }bvð[Rs[·é2683 * 2684 * @param dst [out] Rs[æ2685 * @param pos [i/o] Rs[Êu2686 * @param src [in] Rs[³2687 * 2688 * @return ȵ2676 /** マップを深くコピーする 2677 * 2678 * @param dst [out]コピー先 2679 * @param pos [i/o]コピー位置 2680 * @param src [in] コピー元 2681 * 2682 * @return なし 2689 2683 */ 2690 2684 … … 2716 2710 2717 2711 /*------------------------------------------------------------------------*/ 2718 /** }bvð[N[¡»·é2719 * 2720 * @param map [in] }bvIuWFNg2721 * @param len [in] ·³2722 * 2723 * @return N[¡»³ê½IuWFNg2712 /** マップを深くクローン複製する 2713 * 2714 * @param map [in] マップオブジェクト 2715 * @param len [in] 長さ 2716 * 2717 * @return クローン複製されたオブジェクト 2724 2718 */ 2725 2719 … … 2741 2735 2742 2736 /*------------------------------------------------------------------------*/ 2743 /** t[ÌIuWFNgf[^©çXbgðí·é2744 * 2745 * @param obj [in] t[ÌIuWFNgf[^2746 * @param slot [in] XbgV{2747 * 2748 * @return ȵ2737 /** フレームのオブジェクトデータからスロットを削除する 2738 * 2739 * @param obj [in] フレームのオブジェクトデータ 2740 * @param slot [in] スロットシンボル 2741 * 2742 * @return なし 2749 2743 */ 2750 2744 … … 2785 2779 2786 2780 /*------------------------------------------------------------------------*/ 2787 /** t[ܽÍzñÌIuWFNgf[^©çXbgܽÍwèÊuÌvfðí·é2788 * 2789 * @param obj [in] t[ÌIuWFNgf[^2790 * @param slot [in] XbgV{^Êu2791 * 2792 * @return ȵ2781 /** フレームまたは配列のオブジェクトデータからスロットまたは指定位置の要素を削除する 2782 * 2783 * @param obj [in] フレームのオブジェクトデータ 2784 * @param slot [in] スロットシンボル/位置 2785 * 2786 * @return なし 2793 2787 */ 2794 2788 … … 2811 2805 #pragma mark - 2812 2806 /*------------------------------------------------------------------------*/ 2813 /** }bv©çwèÊuÌXbgV{ðæo·2814 * 2815 * @param r [in] }bvIuWFNg2816 * @param index [in] Êu2817 * @param indexP [i/o] }bvSÌ©çݽ»ÝÌJnÊu2818 * 2819 * @return XbgV{2807 /** マップから指定位置のスロットシンボルを取出す 2808 * 2809 * @param r [in] マップオブジェクト 2810 * @param index [in] 位置 2811 * @param indexP [i/o]マップ全体からみた現在の開始位置 2812 * 2813 * @return スロットシンボル 2820 2814 */ 2821 2815 … … 2857 2851 2858 2852 /*------------------------------------------------------------------------*/ 2859 /** zñ©çlðõ·é2860 * 2861 * @param r [in] zñ2862 * @param v [in] lIuWFNg2863 * @param st [in] JnÊu2864 * 2865 * @retval Êu ¬÷2866 * @retval -1 ¸s2853 /** 配列から値を検索する 2854 * 2855 * @param r [in] 配列 2856 * @param v [in] 値オブジェクト 2857 * @param st [in] 開始位置 2858 * 2859 * @retval 位置 成功 2860 * @retval -1 失敗 2867 2861 */ 2868 2862 … … 2881 2875 if (NewtMapIsSorted(r)) 2882 2876 { 2883 // }bvª\[g³êÄ¢éê...2877 // マップがソートされている場合... 2884 2878 2885 2879 newtSymDataRef sym; … … 2909 2903 2910 2904 /*------------------------------------------------------------------------*/ 2911 /** }bv©çlðõ·é2912 * 2913 * @param r [in] }bvIuWFNg2914 * @param v [in] XbgV{2915 * @param indexP [out] Êu2916 * 2917 * @retval true ¬÷2918 * @retval false ¸s2905 /** マップから値を検索する 2906 * 2907 * @param r [in] マップオブジェクト 2908 * @param v [in] スロットシンボル 2909 * @param indexP [out]位置 2910 * 2911 * @retval true 成功 2912 * @retval false 失敗 2919 2913 */ 2920 2914 … … 2951 2945 2952 2946 /*------------------------------------------------------------------------*/ 2953 /** t[IuWFNgÌ}bvðæ¾2954 * 2955 * @param r [in] t[2956 * 2957 * @return }bv2947 /** フレームオブジェクトのマップを取得 2948 * 2949 * @param r [in] フレーム 2950 * 2951 * @return マップ 2958 2952 */ 2959 2953 … … 2973 2967 #pragma mark - 2974 2968 /*------------------------------------------------------------------------*/ 2975 /** t[IuWFNg©çXbgÌÊuðT·2976 * 2977 * @param frame [in] t[2978 * @param slot [in] XbgV{2979 * 2980 * @retval XbgÌÊu Ý©Á½ê2981 * @retval -1 Ý©çÈ©Á½ê2969 /** フレームオブジェクトからスロットの位置を探す 2970 * 2971 * @param frame [in] フレーム 2972 * @param slot [in] スロットシンボル 2973 * 2974 * @retval スロットの位置 みつかった場合 2975 * @retval -1 みつからなかった場合 2982 2976 */ 2983 2977 … … 2999 2993 3000 2994 /*------------------------------------------------------------------------*/ 3001 /** t[IuWFNgª _proto Xbgð©`FbN·é3002 * 3003 * @param frame [in] t[3004 * 3005 * @retval true _proto XbgðÂ3006 * @retval false _proto Xbgð½È¢2995 /** フレームオブジェクトが _proto スロットを持つかチェックする 2996 * 2997 * @param frame [in] フレーム 2998 * 2999 * @retval true _proto スロットを持つ 3000 * @retval false _proto スロットを持たない 3007 3001 */ 3008 3002 … … 3018 3012 3019 3013 /*------------------------------------------------------------------------*/ 3020 /** t[àÌXbgÌL³ð²×é3021 * 3022 * @param frame [in] t[3023 * @param slot [in] XbgV{3024 * 3025 * @retval true Xbgª¶Ý·é3026 * @retval false Xbgª¶ÝµÈ¢3014 /** フレーム内のスロットの有無を調べる 3015 * 3016 * @param frame [in] フレーム 3017 * @param slot [in] スロットシンボル 3018 * 3019 * @retval true スロットが存在する 3020 * @retval false スロットが存在しない 3027 3021 */ 3028 3022 … … 3044 3038 3045 3039 /*------------------------------------------------------------------------*/ 3046 /** XbgIuWFNgÌANZXpX©çlðæ¾·é3047 * 3048 * @param r [in] IuWFNg3049 * @param p [in] ANZXpX3050 * 3051 * @return lIuWFNg3040 /** スロットオブジェクトのアクセスパスから値を取得する 3041 * 3042 * @param r [in] オブジェクト 3043 * @param p [in] アクセスパス 3044 * 3045 * @return 値オブジェクト 3052 3046 */ 3053 3047 … … 3062 3056 3063 3057 /*------------------------------------------------------------------------*/ 3064 /** IuWFNgàÌANZXpXÌL³ð²×é3065 * 3066 * @param r [in] IuWFNg3067 * @param p [in] ANZXpX3068 * 3069 * @retval true ANZXpXª¶Ý·é3070 * @retval false ANZXpXª¶ÝµÈ¢3058 /** オブジェクト内のアクセスパスの有無を調べる 3059 * 3060 * @param r [in] オブジェクト 3061 * @param p [in] アクセスパス 3062 * 3063 * @retval true アクセスパスが存在する 3064 * @retval false アクセスパスが存在しない 3071 3065 */ 3072 3066 … … 3078 3072 3079 3073 /*------------------------------------------------------------------------*/ 3080 /** IuWFNgÌANZXpXÌlðæ¾3081 * 3082 * @param r [in] IuWFNg3083 * @param p [in] ANZXpX3084 * @param slotP [out] Xbg3085 * 3086 * @return lIuWFNg3074 /** オブジェクトのアクセスパスの値を取得 3075 * 3076 * @param r [in] オブジェクト 3077 * @param p [in] アクセスパス 3078 * @param slotP [out]スロット 3079 * 3080 * @return 値オブジェクト 3087 3081 */ 3088 3082 … … 3130 3124 3131 3125 /*------------------------------------------------------------------------*/ 3132 /** oCiIuWFNgÌwèÊu©çlðæ¾·é3133 * 3134 * @param r [in] oCiIuWFNg3135 * @param p [in] Êu3136 * 3137 * @return lIuWFNg3126 /** バイナリオブジェクトの指定位置から値を取得する 3127 * 3128 * @param r [in] バイナリオブジェクト 3129 * @param p [in] 位置 3130 * 3131 * @return 値オブジェクト 3138 3132 */ 3139 3133 … … 3157 3151 3158 3152 /*------------------------------------------------------------------------*/ 3159 /** oCiIuWFNgÌwèÊuÉlðZbg·é3160 * 3161 * @param r [in] oCiIuWFNg3162 * @param p [in] Êu3163 * @param v [in] lIuWFNg3164 * 3165 * @return lIuWFNg3153 /** バイナリオブジェクトの指定位置に値をセットする 3154 * 3155 * @param r [in] バイナリオブジェクト 3156 * @param p [in] 位置 3157 * @param v [in] 値オブジェクト 3158 * 3159 * @return 値オブジェクト 3166 3160 */ 3167 3161 … … 3197 3191 3198 3192 /*------------------------------------------------------------------------*/ 3199 /** ¶ñÌwèÊu©ç¶ðæ¾3200 * 3201 * @param r [in] ¶IuWFNg3202 * @param p [in] Êu3203 * 3204 * @return ¶IuWFNg3193 /** 文字列の指定位置から文字を取得 3194 * 3195 * @param r [in] 文字オブジェクト 3196 * @param p [in] 位置 3197 * 3198 * @return 文字オブジェクト 3205 3199 */ 3206 3200 … … 3224 3218 3225 3219 /*------------------------------------------------------------------------*/ 3226 /** ¶ñÌwèÊuɶðZbg·é3227 * 3228 * @param r [in] ¶IuWFNg3229 * @param p [in] Êu3230 * @param v [in] ¶IuWFNg3231 * 3232 * @return ¶IuWFNg3220 /** 文字列の指定位置に文字をセットする 3221 * 3222 * @param r [in] 文字オブジェクト 3223 * @param p [in] 位置 3224 * @param v [in] 文字オブジェクト 3225 * 3226 * @return 文字オブジェクト 3233 3227 */ 3234 3228 … … 3257 3251 3258 3252 if (slen <= p) 3259 { // ¶ñªÑ½ÌÅI[¶ðZbg3253 { // 文字列が延びたので終端文字をセット 3260 3254 str[p + 1] = '\0'; 3261 3255 } … … 3271 3265 3272 3266 /*------------------------------------------------------------------------*/ 3273 /** XbgIuWFNgÌwèÊug©çlðæ¾3274 * 3275 * @param r [in] IuWFNg3276 * @param p [in] Êu3277 * 3278 * @return lIuWFNg3267 /** スロットオブジェクトの指定位置トから値を取得 3268 * 3269 * @param r [in] オブジェクト 3270 * @param p [in] 位置 3271 * 3272 * @return 値オブジェクト 3279 3273 */ 3280 3274 … … 3298 3292 3299 3293 /*------------------------------------------------------------------------*/ 3300 /** XbgIuWFNgÉÌwèÊuÉlðZbg·é3301 * 3302 * @param r [in] IuWFNg3303 * @param p [in] Êu3304 * @param v [in] lIuWFNg3305 * 3306 * @return lIuWFNg3294 /** スロットオブジェクトにの指定位置に値をセットする 3295 * 3296 * @param r [in] オブジェクト 3297 * @param p [in] 位置 3298 * @param v [in] 値オブジェクト 3299 * 3300 * @return 値オブジェクト 3307 3301 */ 3308 3302 … … 3331 3325 3332 3326 /*------------------------------------------------------------------------*/ 3333 /** XbgIuWFNgÉlð}ü·é3334 * 3335 * @param r [in] IuWFNg3336 * @param p [in] Êu3337 * @param v [in] lIuWFNg3338 * 3339 * @return lIuWFNg3327 /** スロットオブジェクトに値を挿入する 3328 * 3329 * @param r [in] オブジェクト 3330 * @param p [in] 位置 3331 * @param v [in] 値オブジェクト 3332 * 3333 * @return 値オブジェクト 3340 3334 */ 3341 3335 … … 3365 3359 3366 3360 /*------------------------------------------------------------------------*/ 3367 /** zñÌwèÊu©çlðæ¾·é3368 * 3369 * @param r [in] zñIuWFNg3370 * @param p [in] Êu3371 * 3372 * @return lIuWFNg3361 /** 配列の指定位置から値を取得する 3362 * 3363 * @param r [in] 配列オブジェクト 3364 * @param p [in] 位置 3365 * 3366 * @return 値オブジェクト 3373 3367 */ 3374 3368 … … 3380 3374 3381 3375 /*------------------------------------------------------------------------*/ 3382 /** zñÌwèÊuÉlðZbg·é3383 * 3384 * @param r [in] zñIuWFNg3385 * @param p [in] Êu3386 * @param v [in] lIuWFNg3387 * 3388 * @return lIuWFNg3376 /** 配列の指定位置に値をセットする 3377 * 3378 * @param r [in] 配列オブジェクト 3379 * @param p [in] 位置 3380 * @param v [in] 値オブジェクト 3381 * 3382 * @return 値オブジェクト 3389 3383 */ 3390 3384 … … 3396 3390 3397 3391 /*------------------------------------------------------------------------*/ 3398 /** zñÌwèÊuÉlð}ü·é3399 * 3400 * @param r [in] zñIuWFNg3401 * @param p [in] Êu3402 * @param v [in] lIuWFNg3403 * 3404 * @return lIuWFNg3392 /** 配列の指定位置に値を挿入する 3393 * 3394 * @param r [in] 配列オブジェクト 3395 * @param p [in] 位置 3396 * @param v [in] 値オブジェクト 3397 * 3398 * @return 値オブジェクト 3405 3399 */ 3406 3400 … … 3412 3406 3413 3407 /*------------------------------------------------------------------------*/ 3414 /** t[ÌXbg©çlðæ¾·é3415 * 3416 * @param r [in] t[3417 * @param p [in] XbgV{3418 * 3419 * @return lIuWFNg3408 /** フレームのスロットから値を取得する 3409 * 3410 * @param r [in] フレーム 3411 * @param p [in] スロットシンボル 3412 * 3413 * @return 値オブジェクト 3420 3414 */ 3421 3415 … … 3427 3421 3428 3422 /*------------------------------------------------------------------------*/ 3429 /** t[ÌXbgÉlðZbg·é3430 * 3431 * @param r [in] t[3432 * @param p [in] XbgV{3433 * @param v [in] lIuWFNg3434 * 3435 * @return lIuWFNg3423 /** フレームのスロットに値をセットする 3424 * 3425 * @param r [in] フレーム 3426 * @param p [in] スロットシンボル 3427 * @param v [in] 値オブジェクト 3428 * 3429 * @return 値オブジェクト 3436 3430 */ 3437 3431 … … 3460 3454 3461 3455 /*------------------------------------------------------------------------*/ 3462 /** IuWFNgÌwè³ê½Êu©çlðæ¾3463 * 3464 * @param r [in] IuWFNg3465 * @param p [in] Êu3466 * 3467 * @return lIuWFNg3456 /** オブジェクトの指定された位置から値を取得 3457 * 3458 * @param r [in] オブジェクト 3459 * @param p [in] 位置 3460 * 3461 * @return 値オブジェクト 3468 3462 */ 3469 3463 … … 3492 3486 3493 3487 /*------------------------------------------------------------------------*/ 3494 /** IuWFNgÌwè³ê½ÊuÉlðZbg·é3495 * 3496 * @param r [in] IuWFNg3497 * @param p [in] Êu3498 * @param v [in] lIuWFNg3499 * 3500 * @return lIuWFNg3488 /** オブジェクトの指定された位置に値をセットする 3489 * 3490 * @param r [in] オブジェクト 3491 * @param p [in] 位置 3492 * @param v [in] 値オブジェクト 3493 * 3494 * @return 値オブジェクト 3501 3495 */ 3502 3496 … … 3526 3520 #pragma mark - 3527 3521 /*------------------------------------------------------------------------*/ 3528 /** õ³ê½ÏÌÛ¶êÉlðZbg·é3529 * 3530 * @param start [in] JnIuWFNg3531 * @param name [in] ϼV{3532 * @param value [in] lIuWFNg3533 * 3534 * @retval true lªZbgÅ«½3535 * @retval false lªZbgūȩÁ½3522 /** 検索された変数の保存場所に値をセットする 3523 * 3524 * @param start [in] 開始オブジェクト 3525 * @param name [in] 変数名シンボル 3526 * @param value [in] 値オブジェクト 3527 * 3528 * @retval true 値がセットできた 3529 * @retval false 値がセットできなかった 3536 3530 */ 3537 3531 … … 3569 3563 3570 3564 /*------------------------------------------------------------------------*/ 3571 /** LVJXR[vÅõ³ê½ÏÌÛ¶êÉlðZbg·é3572 * 3573 * @param start [in] JnIuWFNg3574 * @param name [in] ϼV{3575 * @param value [in] lIuWFNg3576 * 3577 * @retval true lªZbgÅ«½3578 * @retval false lªZbgūȩÁ½3565 /** レキシカルスコープで検索された変数の保存場所に値をセットする 3566 * 3567 * @param start [in] 開始オブジェクト 3568 * @param name [in] 変数名シンボル 3569 * @param value [in] 値オブジェクト 3570 * 3571 * @retval true 値がセットできた 3572 * @retval false 値がセットできなかった 3579 3573 */ 3580 3574 … … 3604 3598 3605 3599 /*------------------------------------------------------------------------*/ 3606 /** LVJXR[vÅÏ̶Ýð²×é3607 * 3608 * @param start [in] JnIuWFNg3609 * @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 変数がない 3613 3607 */ 3614 3608 … … 3635 3629 3636 3630 /*------------------------------------------------------------------------*/ 3637 /** vgEyAgp³Åt[àÌXbgÌL³ð²×é3638 * 3639 * @param r [in] t[3640 * @param name [in] XbgV{3641 * 3642 * @retval true Xbgª¶Ý·é3643 * @retval false Xbgª¶ÝµÈ¢3631 /** プロト・ペアレント継承でフレーム内のスロットの有無を調べる 3632 * 3633 * @param r [in] フレーム 3634 * @param name [in] スロットシンボル 3635 * 3636 * @retval true スロットが存在する 3637 * @retval false スロットが存在しない 3644 3638 */ 3645 3639 … … 3673 3667 #pragma mark - 3674 3668 /*------------------------------------------------------------------------*/ 3675 /** lCeBuÖÌÖIuWFNg©çÖÌ|C^ðæ¾·é3676 * 3677 * @param r [in] ÖIuWFNg3678 * 3679 * @return ÖÌ|C^3669 /** ネイティブ関数の関数オブジェクトから関数のポインタを取得する 3670 * 3671 * @param r [in] 関数オブジェクト 3672 * 3673 * @return 関数のポインタ 3680 3674 */ 3681 3675 … … 3694 3688 3695 3689 /*------------------------------------------------------------------------*/ 3696 /** lCeBuÖircvrȵjÌÖIuWFNgð쬷é3697 * 3698 * @param funcPtr [in] ÖÌ|C^3699 * @param numArgs [in] øÌ3700 * @param indefinite [in] sè·tO3701 * @param doc [in] ྶ3702 * 3703 * @return ÖIuWFNg3690 /** ネイティブ関数(rcvrなし)の関数オブジェクトを作成する 3691 * 3692 * @param funcPtr [in] 関数のポインタ 3693 * @param numArgs [in] 引数の数 3694 * @param indefinite [in] 不定長フラグ 3695 * @param doc [in] 説明文 3696 * 3697 * @return 関数オブジェクト 3704 3698 */ 3705 3699 … … 3729 3723 3730 3724 /*------------------------------------------------------------------------*/ 3731 /** lCeBuÖ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è·tO3737 * @param doc [in] ྶ3738 * 3739 * @return ÖIuWFNg3725 /** ネイティブ関数(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 関数オブジェクト 3740 3734 */ 3741 3735 … … 3750 3744 3751 3745 /*------------------------------------------------------------------------*/ 3752 /** lCeBuÖircvr èjÌÖIuWFNgð쬷é3753 * 3754 * @param funcPtr [in] ÖÌ|C^3755 * @param numArgs [in] øÌ3756 * @param indefinite [in] sè·tO3757 * @param doc [in] ྶ3758 * 3759 * @return ÖIuWFNg3746 /** ネイティブ関数(rcvrあり)の関数オブジェクトを作成する 3747 * 3748 * @param funcPtr [in] 関数のポインタ 3749 * @param numArgs [in] 引数の数 3750 * @param indefinite [in] 不定長フラグ 3751 * @param doc [in] 説明文 3752 * 3753 * @return 関数オブジェクト 3760 3754 */ 3761 3755 … … 3785 3779 3786 3780 /*------------------------------------------------------------------------*/ 3787 /** lCeBuÖ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è·tO3793 * @param doc [in] ྶ3794 * 3795 * @return ÖIuWFNg3781 /** ネイティブ関数(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 関数オブジェクト 3796 3790 */ 3797 3791 … … 3807 3801 #pragma mark - 3808 3802 /*------------------------------------------------------------------------*/ 3809 /** ¶ñÌO¼ªª¶ñÆêv·é©`FbN·é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 前半部が部分文字列と一致しない 3818 3812 */ 3819 3813 … … 3828 3822 3829 3823 /*------------------------------------------------------------------------*/ 3830 /** sub ª supr ÌTuNXð©`FbN·é3831 * 3832 * @param sub [in] TuNX¶ñ3833 * @param sublen [in] TuX[pNX¶ñÌ·³3834 * @param supr [in] X[pNX¶ñ3835 * @param suprlen [in] X[pNX¶ñÌ·³3836 * 3837 * @retval true TuNX3838 * @retval false TuNXÅÈ¢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 サブクラスでない 3839 3833 */ 3840 3834 … … 3855 3849 3856 3850 /*------------------------------------------------------------------------*/ 3857 /** sub ª supr ÌTuNXðÜÞ©`FbN·é3858 * 3859 * @param sub [in] TuNX¶ñ3860 * @param sublen [in] TuX[pNX¶ñÌ·³3861 * @param supr [in] X[pNX¶ñ3862 * @param suprlen [in] X[pNX¶ñÌ·³3863 * 3864 * @retval true TuNXðÜÞ3865 * @retval false TuNXðÜÜÈ¢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 サブクラスを含まない 3866 3860 */ 3867 3861 … … 3889 3883 3890 3884 /*------------------------------------------------------------------------*/ 3891 /** sub ª supr ÌTuNXðÜÞ©`FbN·é3892 * 3893 * @param sub [in] TuNX3894 * @param supr [in] X[pNX3895 * 3896 * @retval true TuNXðÜÞ3897 * @retval false TuNXðÜÜÈ¢3885 /** sub が supr のサブクラスを含むかチェックする 3886 * 3887 * @param sub [in] サブクラス 3888 * @param supr [in] スーパクラス 3889 * 3890 * @retval true サブクラスを含む 3891 * @retval false サブクラスを含まない 3898 3892 */ 3899 3893 … … 3916 3910 3917 3911 /*------------------------------------------------------------------------*/ 3918 /** sub ª supr ÌTuNX©`FbN·é3919 * 3920 * @param sub [in] V{IuWFNgP3921 * @param supr [in] V{IuWFNgQ3922 * 3923 * @retval true TuNX3924 * @retval false TuNXÅÈ¢3912 /** sub が supr のサブクラスかチェックする 3913 * 3914 * @param sub [in] シンボルオブジェクト1 3915 * @param supr [in] シンボルオブジェクト2 3916 * 3917 * @retval true サブクラス 3918 * @retval false サブクラスでない 3925 3919 */ 3926 3920 … … 3943 3937 3944 3938 /*------------------------------------------------------------------------*/ 3945 /** obj ª r ÌCX^X©`FbN·é3946 * 3947 * @param obj [in] IuWFNg3948 * @param r [in] NXV{3949 * 3950 * @retval true CX^X3951 * @retval false CX^XÅÈ¢3939 /** obj が r のインスタンスかチェックする 3940 * 3941 * @param obj [in] オブジェクト 3942 * @param r [in] クラスシンボル 3943 * 3944 * @retval true インスタンス 3945 * @retval false インスタンスでない 3952 3946 */ 3953 3947 … … 3960 3954 #pragma mark - 3961 3955 /*------------------------------------------------------------------------*/ 3962 /** ¶ñIuWFNgÌÅãɶñðÇÁ·é3963 * 3964 * @param r [in] ¶ñIuWFNg3965 * @param s [in] ÇÁ·é¶ñ3966 * 3967 * @return ¶ñIuWFNg3956 /** 文字列オブジェクトの最後に文字列を追加する 3957 * 3958 * @param r [in] 文字列オブジェクト 3959 * @param s [in] 追加する文字列 3960 * 3961 * @return 文字列オブジェクト 3968 3962 */ 3969 3963 … … 3978 3972 3979 3973 /*------------------------------------------------------------------------*/ 3980 /** ¶ñIuWFNgÌÅãÉwè³ê½·³Ì¶ñðÇÁ·é3981 * 3982 * @param r [in] ¶ñIuWFNg3983 * @param s [in] ÇÁ·é¶ñ3984 * @param slen [in] ÇÁ·é¶ñÌ·³3985 * 3986 * @return ¶ñIuWFNg3974 /** 文字列オブジェクトの最後に指定された長さの文字列を追加する 3975 * 3976 * @param r [in] 文字列オブジェクト 3977 * @param s [in] 追加する文字列 3978 * @param slen [in] 追加する文字列の長さ 3979 * 3980 * @return 文字列オブジェクト 3987 3981 */ 3988 3982 … … 4020 4014 #pragma mark - 4021 4015 /*------------------------------------------------------------------------*/ 4022 /** «ÏÌæ¾4023 * 4024 * @param s [in] ¶ñ4025 * 4026 * @return ¶ñIuWFNg4016 /** 環境変数の取得 4017 * 4018 * @param s [in] 文字列 4019 * 4020 * @return 文字列オブジェクト 4027 4021 */ 4028 4022 -
NEWT0/trunk/src/newt_core/NewtParser.c
r39 r68 2 2 /** 3 3 * @file NewtParser.c 4 * @brief \¶ØÌ¶¬4 * @brief 構文木の生成 5 5 * 6 6 * @author M.Nukui … … 11 11 12 12 13 /* wb_t@C*/13 /* ヘッダファイル */ 14 14 #include <stdlib.h> 15 15 #include <string.h> … … 28 28 29 29 30 /* ^é¾*/31 32 /// üÍf[^30 /* 型宣言 */ 31 32 /// 入力データ 33 33 typedef struct { 34 const char * data; ///< üÍf[^35 const char * currp; ///< »ÝÌüÍÊu36 const char * limit; ///< üÍf[^ÌÅã34 const char * data; ///< 入力データ 35 const char * currp; ///< 現在の入力位置 36 const char * limit; ///< 入力データの最後 37 37 } nps_inputdata_t; 38 38 39 39 40 /* O[oÏ*/41 nps_env_t nps_env; ///< p[T«42 43 44 /* [JÏ*/45 static newtStack nps_stree; ///< \¶ØX^bNîñ46 static nps_inputdata_t nps_inputdata; ///< üÍf[^47 48 49 /* }N*/50 #define STREESTACK ((nps_syntax_node_t *)nps_stree.stackp) ///< \¶ØX^bN51 #define CX (nps_stree.sp) ///< \¶ØX^bN|C^52 53 54 /* Övg^Cv*/40 /* グローバル変数 */ 41 nps_env_t nps_env; ///< パーサ環境 42 43 44 /* ローカル変数 */ 45 static newtStack nps_stree; ///< 構文木スタック情報 46 static 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 /* 関数プロトタイプ */ 55 55 static void NPSBindParserInput(const char * s); 56 56 static int nps_yyinput_str(char * buff, int max_size); … … 64 64 #pragma mark - 65 65 /*------------------------------------------------------------------------*/ 66 /** \¶ðÍ·é¶ñðZbg·é67 * 68 * @param s [in] ¶ñ69 * 70 * @return ȵ66 /** 構文解析する文字列をセットする 67 * 68 * @param s [in] 文字列 69 * 70 * @return なし 71 71 */ 72 72 … … 83 83 84 84 /*------------------------------------------------------------------------*/ 85 /** \¶ðÍ·éf[^ð¶ñ©çæo·86 * 87 * @param buff [out] obt@88 * @param max_size [in] Åå·89 * 90 * @return æoµ½f[^TCY85 /** 構文解析するデータを文字列から取出す 86 * 87 * @param buff [out]バッファ 88 * @param max_size [in] 最大長 89 * 90 * @return 取出したデータサイズ 91 91 */ 92 92 … … 109 109 110 110 /*------------------------------------------------------------------------*/ 111 /** \¶ðÍ·éf[^ðæo·112 * 113 * @param yyin [in] üÍt@C114 * @param buff [out] obt@115 * @param max_size [in] Åå·116 * 117 * @return æoµ½f[^TCY111 /** 構文解析するデータを取出す 112 * 113 * @param yyin [in] 入力ファイル 114 * @param buff [out]バッファ 115 * @param max_size [in] 最大長 116 * 117 * @return 取出したデータサイズ 118 118 */ 119 119 … … 129 129 #pragma mark - 130 130 /*------------------------------------------------------------------------*/ 131 /** \¶ðÍ̽ßÌú»132 * 133 * @param pool [in] v[134 * 135 * @return ȵ131 /** 構文解析のための初期化 132 * 133 * @param pool [in] メモリプール 134 * 135 * @return なし 136 136 */ 137 137 … … 153 153 154 154 /*------------------------------------------------------------------------*/ 155 /** \¶ðÍ·é156 * 157 * @param path [in] üÍt@CÌpX158 * @param streeP [out] \¶Ø159 * @param sizeP [out] \¶ØÌTCY160 * @param is_file [in] t@C©Ç¤©i#! ð¨±È¤©Ç¤©j161 * 162 * @return G[R[h155 /** 構文解析する 156 * 157 * @param path [in] 入力ファイルのパス 158 * @param streeP [out]構文木 159 * @param sizeP [out]構文木のサイズ 160 * @param is_file [in] ファイルかどうか(#! 処理をおこなうかどうか) 161 * 162 * @return エラーコード 163 163 */ 164 164 … … 196 196 197 197 /*------------------------------------------------------------------------*/ 198 /** wè³ê½t@Cð\[XÉ\¶ðÍ·é199 * 200 * @param path [in] üÍt@CÌpX201 * @param streeP [out] \¶Ø202 * @param sizeP [out] \¶ØÌTCY203 * 204 * @return G[R[h198 /** 指定されたファイルをソースに構文解析する 199 * 200 * @param path [in] 入力ファイルのパス 201 * @param streeP [out]構文木 202 * @param sizeP [out]構文木のサイズ 203 * 204 * @return エラーコード 205 205 */ 206 206 … … 233 233 234 234 /*------------------------------------------------------------------------*/ 235 /** ¶ñð\[XÉ\¶ðÍ·é236 * 237 * @param s [in] üÍf[^238 * @param streeP [out] \¶Ø239 * @param sizeP [out] \¶ØÌTCY240 * 241 * @return G[R[h235 /** 文字列をソースに構文解析する 236 * 237 * @param s [in] 入力データ 238 * @param streeP [out]構文木 239 * @param sizeP [out]構文木のサイズ 240 * 241 * @return エラーコード 242 242 */ 243 243 … … 256 256 257 257 /*------------------------------------------------------------------------*/ 258 /** \¶ðÍÌãn259 * 260 * @return ȵ258 /** 構文解析の後始末 259 * 260 * @return なし 261 261 */ 262 262 … … 269 269 #pragma mark - 270 270 /*------------------------------------------------------------------------*/ 271 /** \¶ØÌm[hðó·é272 * 273 * @param f [in] oÍt@C274 * @param r [in] m[h275 * 276 * @return ȵ271 /** 構文木のノードを印字する 272 * 273 * @param f [in] 出力ファイル 274 * @param r [in] ノード 275 * 276 * @return なし 277 277 */ 278 278 … … 287 287 288 288 /*------------------------------------------------------------------------*/ 289 /** \¶R[hðó·é290 * 291 * @param f [in] oÍt@C292 * @param code [in] \¶R[h293 * 294 * @return ȵ289 /** 構文コードを印字する 290 * 291 * @param f [in] 出力ファイル 292 * @param code [in] 構文コード 293 * 294 * @return なし 295 295 */ 296 296 … … 403 403 404 404 /*------------------------------------------------------------------------*/ 405 /** \¶Øð_v·é406 * 407 * @param f [in] oÍt@C408 * @param stree [in] \¶Ø409 * @param size [in] \¶ØÌTCY410 * 411 * @return ȵ405 /** 構文木をダンプする 406 * 407 * @param f [in] 出力ファイル 408 * @param stree [in] 構文木 409 * @param size [in] 構文木のサイズ 410 * 411 * @return なし 412 412 */ 413 413 … … 446 446 #pragma mark - 447 447 /*------------------------------------------------------------------------*/ 448 /** øOÌm[hðì¬449 * 450 * @param code [in] \¶R[h451 * 452 * @return m[h448 /** 引数0のノードを作成 449 * 450 * @param code [in] 構文コード 451 * 452 * @return ノード 453 453 */ 454 454 … … 460 460 461 461 /*------------------------------------------------------------------------*/ 462 /** øPÌm[hðì¬463 * 464 * @param code [in] \¶R[h465 * @param op1 [in] øP466 * 467 * @return m[h462 /** 引数1のノードを作成 463 * 464 * @param code [in] 構文コード 465 * @param op1 [in] 引数1 466 * 467 * @return ノード 468 468 */ 469 469 … … 475 475 476 476 /*------------------------------------------------------------------------*/ 477 /** øQÌm[hðì¬478 * 479 * @param code [in] \¶R[h480 * @param op1 [in] øP481 * @param op2 [in] øQ482 * 483 * @return m[h477 /** 引数2のノードを作成 478 * 479 * @param code [in] 構文コード 480 * @param op1 [in] 引数1 481 * @param op2 [in] 引数2 482 * 483 * @return ノード 484 484 */ 485 485 … … 507 507 508 508 /*------------------------------------------------------------------------*/ 509 /** øPÌIy[^m[hðì¬510 * 511 * @param op [in] IyR[h512 * @param op1 [in] øP513 * 514 * @return m[h509 /** 引数1のオペレータノードを作成 510 * 511 * @param op [in] オペコード 512 * @param op1 [in] 引数1 513 * 514 * @return ノード 515 515 */ 516 516 … … 535 535 536 536 /*------------------------------------------------------------------------*/ 537 /** øQÌIy[^m[hðì¬538 * 539 * @param op [in] IyR[h540 * @param op1 [in] øP541 * @param op2 [in] øQ542 * 543 * @return m[h537 /** 引数2のオペレータノードを作成 538 * 539 * @param op [in] オペコード 540 * @param op1 [in] 引数1 541 * @param op2 [in] 引数2 542 * 543 * @return ノード 544 544 */ 545 545 … … 628 628 629 629 /*------------------------------------------------------------------------*/ 630 /** bZ[WMÌIym[hðì¬631 * 632 * @param receiver [in] V[o633 * @param op [in] IyR[h634 * @param msg [in] bZ[W635 * @param args [in] bZ[WÌø636 * 637 * @return m[h630 /** メッセージ送信のオペノードを作成 631 * 632 * @param receiver [in] レシーバ 633 * @param op [in] オペコード 634 * @param msg [in] メッセージ 635 * @param args [in] メッセージの引数 636 * 637 * @return ノード 638 638 */ 639 639 … … 651 651 652 652 /*------------------------------------------------------------------------*/ 653 /** bZ[WÄMÌIym[hðì¬654 * 655 * @param op [in] IyR[h656 * @param msg [in] bZ[W657 * @param args [in] bZ[WÌø658 * 659 * @return m[h653 /** メッセージ再送信のオペノードを作成 654 * 655 * @param op [in] オペコード 656 * @param msg [in] メッセージ 657 * @param args [in] メッセージの引数 658 * 659 * @return ノード 660 660 */ 661 661 … … 669 669 670 670 //-------------------------------------------------------------------------- 671 /** ð¶ÌIym[hðì¬672 * 673 * @param cond [in] ð®674 * @param ifthen [in] THEN ®675 * @param ifelse [in] ELSE ®676 * 677 * @return m[h671 /** 条件文のオペノードを作成 672 * 673 * @param cond [in] 条件式 674 * @param ifthen [in] THEN 式 675 * @param ifelse [in] ELSE 式 676 * 677 * @return ノード 678 678 */ 679 679 … … 698 698 699 699 //-------------------------------------------------------------------------- 700 /** FOR ¶ÌIym[hðì¬701 * 702 * @param index [in] CfbNXÏ703 * @param v [in] úl704 * @param to [in] I¹l705 * @param by [in] Xebvl706 * @param expr [in] JèÔµ®707 * 708 * @return m[h700 /** 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 ノード 709 709 */ 710 710 … … 725 725 726 726 //-------------------------------------------------------------------------- 727 /** FOREACH ¶ÌIym[hðì¬728 * 729 * @param index [in] CfbNXÏ730 * @param val [in] lði[·éÏ731 * @param obj [in] [vÌÎÛÆÈéIuWFNg732 * @param deeply [in] deeply tO733 * @param op [in] Iy[VíÊiDO or COLLECTj734 * @param expr [in] JèÔµ®735 * 736 * @return m[h727 /** 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 ノード 737 737 */ 738 738 … … 754 754 755 755 //-------------------------------------------------------------------------- 756 /** O[oÖÌIym[hðì¬757 * 758 * @param name [in] Ö¼759 * @param args [in] ÖÌø760 * @param expr [in] Às®761 * 762 * @return m[h756 /** グローバル関数のオペノードを作成 757 * 758 * @param name [in] 関数名 759 * @param args [in] 関数の引数 760 * @param expr [in] 実行式 761 * 762 * @return ノード 763 763 */ 764 764 … … 774 774 #pragma mark - 775 775 //-------------------------------------------------------------------------- 776 /** QÆpXIuWFNgÌì¬777 * 778 * @param sym1 [in] V{P779 * @param sym2 [in] V{Q780 * 781 * @return QÆpXIuWFNg776 /** 参照パスオブジェクトの作成 777 * 778 * @param sym1 [in] シンボル1 779 * @param sym2 [in] シンボル2 780 * 781 * @return 参照パスオブジェクト 782 782 */ 783 783 … … 795 795 796 796 //-------------------------------------------------------------------------- 797 /** zñIuWFNgÌì¬798 * 799 * @param v [in] úl800 * 801 * @return zñIuWFNg797 /** 配列オブジェクトの作成 798 * 799 * @param v [in] 初期値 800 * 801 * @return 配列オブジェクト 802 802 */ 803 803 … … 821 821 822 822 //-------------------------------------------------------------------------- 823 /** zñIuWFNgÌÅãÉIuWFNgðÇÁ·é824 * 825 * @param r [in] zñIuWFNg826 * @param v [in] ÇÁ·éIuWFNg827 * 828 * @return zñIuWFNg823 /** 配列オブジェクトの最後にオブジェクトを追加する 824 * 825 * @param r [in] 配列オブジェクト 826 * @param v [in] 追加するオブジェクト 827 * 828 * @return 配列オブジェクト 829 829 */ 830 830 … … 837 837 838 838 //-------------------------------------------------------------------------- 839 /** zñIuWFNgÌIuWFNgð}ü·é840 * 841 * @param r [in] zñIuWFNg842 * @param p [in] }ü·éÊu843 * @param v [in] }üéIuWFNg844 * 845 * @return zñIuWFNg839 /** 配列オブジェクトのオブジェクトを挿入する 840 * 841 * @param r [in] 配列オブジェクト 842 * @param p [in] 挿入する位置 843 * @param v [in] 挿入るオブジェクト 844 * 845 * @return 配列オブジェクト 846 846 */ 847 847 … … 855 855 856 856 //-------------------------------------------------------------------------- 857 /** t[}bvIuWFNgÌì¬858 * 859 * @param v [in] úl860 * 861 * @return t[}bvIuWFNg857 /** フレームマップオブジェクトの作成 858 * 859 * @param v [in] 初期値 860 * 861 * @return フレームマップオブジェクト 862 862 */ 863 863 … … 881 881 882 882 //-------------------------------------------------------------------------- 883 /** t[IuWFNgÌì¬884 * 885 * @param slot [in] XbgV{886 * @param v [in] úl887 * 888 * @return t[IuWFNg883 /** フレームオブジェクトの作成 884 * 885 * @param slot [in] スロットシンボル 886 * @param v [in] 初期値 887 * 888 * @return フレームオブジェクト 889 889 */ 890 890 … … 909 909 910 910 //-------------------------------------------------------------------------- 911 /** t[ÌXbgÉIuWFNgðZbg·é912 * 913 * @param r [in] t[IuWFNg914 * @param slot [in] XbgV{915 * @param v [in] IuWFNg916 * 917 * @return t[IuWFNg911 /** フレームのスロットにオブジェクトをセットする 912 * 913 * @param r [in] フレームオブジェクト 914 * @param slot [in] スロットシンボル 915 * @param v [in] オブジェクト 916 * 917 * @return フレームオブジェクト 918 918 */ 919 919 … … 926 926 927 927 //-------------------------------------------------------------------------- 928 /** oCiIuWFNgÌì¬929 * 930 * @param v [in] úl931 * 932 * @return oCiIuWFNg928 /** バイナリオブジェクトの作成 929 * 930 * @param v [in] 初期値 931 * 932 * @return バイナリオブジェクト 933 933 */ 934 934 … … 958 958 959 959 //-------------------------------------------------------------------------- 960 /** oCiIuWFNgÌÅãÉf[^ðÇÁ961 * 962 * @param r [in] oCiIuWFNg963 * @param v [in] ÇÁ·éf[^964 * 965 * @return oCiIuWFNg960 /** バイナリオブジェクトの最後にデータを追加 961 * 962 * @param r [in] バイナリオブジェクト 963 * @param v [in] 追加するデータ 964 * 965 * @return バイナリオブジェクト 966 966 */ 967 967 … … 980 980 #pragma mark - 981 981 //-------------------------------------------------------------------------- 982 /** G[bZ[WÌ\¦983 * 984 * @param c [in] G[íÊ985 * @param s [in] G[bZ[W986 * 987 * @return ȵ982 /** エラーメッセージの表示 983 * 984 * @param c [in] エラー種別 985 * @param s [in] エラーメッセージ 986 * 987 * @return なし 988 988 */ 989 989 … … 1013 1013 1014 1014 //-------------------------------------------------------------------------- 1015 /** \¶G[1016 * 1017 * @param err [in] G[R[h1018 * 1019 * @return ȵ1015 /** 構文エラー 1016 * 1017 * @param err [in] エラーコード 1018 * 1019 * @return なし 1020 1020 */ 1021 1021 -
NEWT0/trunk/src/newt_core/NewtPrint.c
r36 r68 2 2 /** 3 3 * @file NewtPrint.c 4 * @brief vgÖW4 * @brief プリント関係 5 5 * 6 6 * @author M.Nukui … … 11 11 12 12 13 /* wb_t@C*/13 /* ヘッダファイル */ 14 14 #include <ctype.h> 15 15 … … 21 21 22 22 23 /* Övg^Cv*/23 /* 関数プロトタイプ */ 24 24 25 25 static int32_t NewtGetPrintLength(void); … … 59 59 #pragma mark - 60 60 /*------------------------------------------------------------------------*/ 61 /** zñܽÍt[ÌvgÂ\È·³ðÔ·62 * 63 * @return vgÂ\È·³61 /** 配列またはフレームのプリント可能な長さを返す 62 * 63 * @return プリント可能な長さ 64 64 */ 65 65 … … 82 82 83 83 /*------------------------------------------------------------------------*/ 84 /** zñܽÍt[ÌvgÂ\È[³ðÔ·85 * 86 * @return vgÂ\È[³84 /** 配列またはフレームのプリント可能な深さを返す 85 * 86 * @return プリント可能な深さ 87 87 */ 88 88 … … 103 103 #pragma mark - 104 104 /*------------------------------------------------------------------------*/ 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 表示不可 112 112 */ 113 113 … … 142 142 143 143 /*------------------------------------------------------------------------*/ 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 表示不可 151 151 */ 152 152 … … 169 169 170 170 /*------------------------------------------------------------------------*/ 171 /** ¶ðGXP[v¶ñÉÏ··é172 * 173 * @param c [in] ¶174 * 175 * @return GXP[v¶ñ171 /** 文字をエスケープ文字列に変換する 172 * 173 * @param c [in] 文字 174 * 175 * @return エスケープ文字列 176 176 */ 177 177 … … 204 204 205 205 /*------------------------------------------------------------------------*/ 206 /** ¶ñðGXP[vÅvg·é207 * 208 * @param f [in] oÍt@C209 * @param str [in] ¶ñ210 * @param len [in] ¶ñÌ·³211 * 212 * @return ȵ213 * 214 * @note newtStream_t ðgp206 /** 文字列をエスケープでプリントする 207 * 208 * @param f [in] 出力ファイル 209 * @param str [in] 文字列 210 * @param len [in] 文字列の長さ 211 * 212 * @return なし 213 * 214 * @note newtStream_t を使用 215 215 */ 216 216 … … 264 264 #pragma mark - 265 265 /*------------------------------------------------------------------------*/ 266 /** oÍt@CÉIuWFNgQÆðPUiÅvg·é267 * 268 * @param f [in] oÍt@C269 * @param r [in] IuWFNg270 * 271 * @return ȵ272 * 273 * @note newtStream_t ðgp266 /** 出力ファイルにオブジェクト参照を16進数でプリントする 267 * 268 * @param f [in] 出力ファイル 269 * @param r [in] オブジェクト 270 * 271 * @return なし 272 * 273 * @note newtStream_t を使用 274 274 */ 275 275 … … 281 281 282 282 /*------------------------------------------------------------------------*/ 283 /** oÍt@CÉÁêIuWFNgðvg·é284 * 285 * @param f [in] oÍt@C286 * @param r [in] IuWFNg287 * 288 * @return ȵ289 * 290 * @note newtStream_t ðgp283 /** 出力ファイルに特殊オブジェクトをプリントする 284 * 285 * @param f [in] 出力ファイル 286 * @param r [in] オブジェクト 287 * 288 * @return なし 289 * 290 * @note newtStream_t を使用 291 291 */ 292 292 … … 301 301 302 302 /*------------------------------------------------------------------------*/ 303 /** oÍt@CÉ®IuWFNgðvg·é304 * 305 * @param f [in] oÍt@C306 * @param r [in] IuWFNg307 * 308 * @return ȵ309 * 310 * @note newtStream_t ðgp303 /** 出力ファイルに整数オブジェクトをプリントする 304 * 305 * @param f [in] 出力ファイル 306 * @param r [in] オブジェクト 307 * 308 * @return なし 309 * 310 * @note newtStream_t を使用 311 311 */ 312 312 … … 321 321 322 322 /*------------------------------------------------------------------------*/ 323 /** oÍt@CÉ®¬_IuWFNgðvg·é324 * 325 * @param f [in] oÍt@C326 * @param r [in] IuWFNg327 * 328 * @return ȵ329 * 330 * @note newtStream_t ðgp323 /** 出力ファイルに浮動小数点オブジェクトをプリントする 324 * 325 * @param f [in] 出力ファイル 326 * @param r [in] オブジェクト 327 * 328 * @return なし 329 * 330 * @note newtStream_t を使用 331 331 */ 332 332 … … 341 341 342 342 /*------------------------------------------------------------------------*/ 343 /** oÍt@CɶIuWFNgðvg·é344 * 345 * @param f [in] oÍt@C346 * @param r [in] IuWFNg347 * 348 * @return ȵ349 * 350 * @note newtStream_t ðgp343 /** 出力ファイルに文字オブジェクトをプリントする 344 * 345 * @param f [in] 出力ファイル 346 * @param r [in] オブジェクト 347 * 348 * @return なし 349 * 350 * @note newtStream_t を使用 351 351 */ 352 352 … … 376 376 377 377 /*------------------------------------------------------------------------*/ 378 /** oÍt@CÉ}WbN|C^ðvg·é379 * 380 * @param f [in] oÍt@C381 * @param r [in] IuWFNg382 * 383 * @return ȵ384 * 385 * @note newtStream_t ðgp378 /** 出力ファイルにマジックポインタをプリントする 379 * 380 * @param f [in] 出力ファイル 381 * @param r [in] オブジェクト 382 * 383 * @return なし 384 * 385 * @note newtStream_t を使用 386 386 */ 387 387 … … 399 399 400 400 /*------------------------------------------------------------------------*/ 401 /** oÍt@CÉ}WbN|C^ðvg·é402 * 403 * @param f [in] oÍt@C404 * @param r [in] IuWFNg405 * 406 * @return ȵ407 * 408 * @note newtStream_t ðgp401 /** 出力ファイルにマジックポインタをプリントする 402 * 403 * @param f [in] 出力ファイル 404 * @param r [in] オブジェクト 405 * 406 * @return なし 407 * 408 * @note newtStream_t を使用 409 409 */ 410 410 … … 423 423 424 424 /*------------------------------------------------------------------------*/ 425 /** oÍt@CÉoCiIuWFNgðvg·é426 * 427 * @param f [in] oÍt@C428 * @param r [in] IuWFNg429 * 430 * @return ȵ431 * 432 * @note newtStream_t ðgp425 /** 出力ファイルにバイナリオブジェクトをプリントする 426 * 427 * @param f [in] 出力ファイル 428 * @param r [in] オブジェクト 429 * 430 * @return なし 431 * 432 * @note newtStream_t を使用 433 433 */ 434 434 … … 458 458 459 459 /*------------------------------------------------------------------------*/ 460 /** oÍt@CÉV{IuWFNgðvg·é461 * 462 * @param f [in] oÍt@C463 * @param r [in] IuWFNg464 * 465 * @return ȵ466 * 467 * @note newtStream_t ðgp460 /** 出力ファイルにシンボルオブジェクトをプリントする 461 * 462 * @param f [in] 出力ファイル 463 * @param r [in] オブジェクト 464 * 465 * @return なし 466 * 467 * @note newtStream_t を使用 468 468 */ 469 469 … … 490 490 491 491 /*------------------------------------------------------------------------*/ 492 /** oÍt@CɶñIuWFNgðvg·é493 * 494 * @param f [in] oÍt@C495 * @param r [in] IuWFNg496 * 497 * @return ȵ498 * 499 * @note newtStream_t ðgp492 /** 出力ファイルに文字列オブジェクトをプリントする 493 * 494 * @param f [in] 出力ファイル 495 * @param r [in] オブジェクト 496 * 497 * @return なし 498 * 499 * @note newtStream_t を使用 500 500 */ 501 501 … … 525 525 526 526 /*------------------------------------------------------------------------*/ 527 /** oÍt@CÉzñIuWFNgðvg·é528 * 529 * @param f [in] oÍt@C530 * @param r [in] IuWFNg531 * @param depth [in] [³532 * @param literal [in] etO533 * 534 * @return ȵ535 * 536 * @note newtStream_t ðgp527 /** 出力ファイルに配列オブジェクトをプリントする 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 を使用 537 537 */ 538 538 … … 603 603 604 604 /*------------------------------------------------------------------------*/ 605 /** oÍt@CÉÖIuWFNgðvg·é606 * 607 * @param f [in] oÍt@C608 * @param r [in] IuWFNg609 * 610 * @return ȵ611 * 612 * @note newtStream_t ðgp605 /** 出力ファイルに関数オブジェクトをプリントする 606 * 607 * @param f [in] 出力ファイル 608 * @param r [in] オブジェクト 609 * 610 * @return なし 611 * 612 * @note newtStream_t を使用 613 613 */ 614 614 … … 630 630 631 631 /*------------------------------------------------------------------------*/ 632 /** oÍt@CɳK\»IuWFNgðvg·é633 * 634 * @param f [in] oÍt@C635 * @param r [in] IuWFNg636 * 637 * @return ȵ638 * 639 * @note newtStream_t ðgp632 /** 出力ファイルに正規表現オブジェクトをプリントする 633 * 634 * @param f [in] 出力ファイル 635 * @param r [in] オブジェクト 636 * 637 * @return なし 638 * 639 * @note newtStream_t を使用 640 640 */ 641 641 … … 659 659 660 660 /*------------------------------------------------------------------------*/ 661 /** oÍt@CÉt[IuWFNgðvg·é662 * 663 * @param f [in] oÍt@C664 * @param r [in] IuWFNg665 * @param depth [in] [³666 * @param literal [in] etO667 * 668 * @return ȵ669 * 670 * @note newtStream_t ðgp661 /** 出力ファイルにフレームオブジェクトをプリントする 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 を使用 671 671 */ 672 672 … … 734 734 735 735 /*------------------------------------------------------------------------*/ 736 /** oÍt@CÉeÌóðvg·é737 * 738 * @param f [in] oÍt@C739 * @param r [in] IuWFNg740 * @param literalP [i/o] etO741 * 742 * @return ȵ743 * 744 * @note newtStream_t ðgp736 /** 出力ファイルにリテラルの印をプリントする 737 * 738 * @param f [in] 出力ファイル 739 * @param r [in] オブジェクト 740 * @param literalP [i/o]リテラルフラグ 741 * 742 * @return なし 743 * 744 * @note newtStream_t を使用 745 745 */ 746 746
