jedidotnet-commits Mailing List for JEDI.NET
Status: Pre-Alpha
Brought to you by:
jedi_mbe
You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(81) |
Jul
(7) |
Aug
(8) |
Sep
(2) |
Oct
|
Nov
(47) |
Dec
(30) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(32) |
Feb
|
Mar
(86) |
Apr
|
May
(1) |
Jun
(24) |
Jul
(4) |
Aug
(5) |
Sep
(4) |
Oct
|
Nov
|
Dec
(9) |
From: Marcel B. <jed...@us...> - 2005-12-31 11:44:50
|
Update of /cvsroot/jedidotnet/main/run In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2875/main/run Modified Files: Jedi.Math.Evaluation.Tokens.pas Log Message: NumberToken.ToString always outputs using the invariant culture Index: Jedi.Math.Evaluation.Tokens.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.Tokens.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Jedi.Math.Evaluation.Tokens.pas 25 Sep 2005 11:28:07 -0000 1.2 --- Jedi.Math.Evaluation.Tokens.pas 31 Dec 2005 11:44:42 -0000 1.3 *************** *** 839,843 **** function NumberToken.get_Literal: string; begin ! Result := FValue.ToString(CultureInfo(Context).NumberFormat); end; {$ENDREGION} --- 839,843 ---- function NumberToken.get_Literal: string; begin ! Result := FValue.ToString(CultureInfo.InvariantCulture.NumberFormat); end; {$ENDREGION} |
From: Marcel B. <jed...@us...> - 2005-12-31 11:44:26
|
Update of /cvsroot/jedidotnet/main/run In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2766/main/run Modified Files: Jedi.Math.Evaluation.Tokenization.pas Log Message: Symbol names must start with a letter or an underscore Index: Jedi.Math.Evaluation.Tokenization.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.Tokenization.pas,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Jedi.Math.Evaluation.Tokenization.pas 27 Sep 2005 18:29:35 -0000 1.3 --- Jedi.Math.Evaluation.Tokenization.pas 31 Dec 2005 11:44:07 -0000 1.4 *************** *** 53,56 **** --- 53,59 ---- strict private FCulture: CultureInfo; + strict protected + const + ExpressionRelatedChars = '+-*/<>=!&|^?:,'; {$ENDREGION} {$REGION 'Individual tokenization methods'} *************** *** 165,171 **** begin // When this method is entered, we already know it's because it hasn't recognized anything to do with an expression ! // Therefore, it must be an identifier. We consider everything up to the next whitespace or expression related ! // character part of the identifier. ! Result := Input.Sequence.Length > 0; if Result then begin --- 168,174 ---- begin // When this method is entered, we already know it's because it hasn't recognized anything to do with an expression ! // Therefore, if it starts with a letter or an underscore, it must be an identifier. We consider everything up to the ! // next whitespace or expression related character part of the identifier. ! Result := (Input.Sequence.Length > 0) and (System.Char.IsLetter(Input.Sequence, 0) or (Input.Sequence.Chars[0] = '_')); if Result then begin *************** *** 175,179 **** repeat sb.Append(Input.Sequence); ! until not Input.Next or ('+-*/<>=!&|^?:,'.IndexOf(Input.Sequence.Chars[0]) > -1); Result := sb.Length > 0; token := IdentifierToken.Create(Context, startLine, startColumn, sb.ToString); --- 178,182 ---- repeat sb.Append(Input.Sequence); ! until not Input.Next or (ExpressionRelatedChars.IndexOf(Input.Sequence.Chars[0]) > -1); Result := sb.Length > 0; token := IdentifierToken.Create(Context, startLine, startColumn, sb.ToString); |
From: Marcel B. <jed...@us...> - 2005-12-31 11:43:56
|
Update of /cvsroot/jedidotnet/main/run In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2596/main/run Modified Files: Jedi.Text.Tokenization.TokenizerBase.pas Log Message: UnknownCharacterToken resulted in an endless stream of the same token and content Index: Jedi.Text.Tokenization.TokenizerBase.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.TokenizerBase.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Jedi.Text.Tokenization.TokenizerBase.pas 24 Dec 2005 12:25:13 -0000 1.2 --- Jedi.Text.Tokenization.TokenizerBase.pas 31 Dec 2005 11:43:26 -0000 1.3 *************** *** 208,211 **** --- 208,212 ---- Result := True; FCurrent := UnknownCharacterToken.Create(FContext, Input.Sequence, Input.Line, Input.Column); + Input.Next; end; if Input.Sequence = '' then |
From: Marcel B. <jed...@us...> - 2005-12-31 11:43:06
|
Update of /cvsroot/jedidotnet/main/run In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv2448/main/run Modified Files: Jedi.Text.Tokenization.ProviderBase.pas Log Message: TokenList is now cloneable (ICloneable interface implemented). Index: Jedi.Text.Tokenization.ProviderBase.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.ProviderBase.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Jedi.Text.Tokenization.ProviderBase.pas 24 Dec 2005 12:25:13 -0000 1.2 --- Jedi.Text.Tokenization.ProviderBase.pas 31 Dec 2005 11:42:43 -0000 1.3 *************** *** 63,67 **** '$Revision$', '$Date$')] ! TokenList = class (&Object, ITokenProvider) {$REGION 'Constructors'} public --- 63,67 ---- '$Revision$', '$Date$')] ! TokenList = class (&Object, ITokenProvider, ICloneable) {$REGION 'Constructors'} public *************** *** 83,86 **** --- 83,90 ---- procedure SavePointer; {$ENDREGION} + {$REGION 'ICloneable methods'} + strict protected + function Clone: &Object; + {$ENDREGION} {$REGION 'List management methods'} public *************** *** 95,98 **** --- 99,105 ---- {$AUTOBOX ON} + type + IntegerArray = array of Integer; + {$REGION 'TokenList'} constructor TokenList.Create; *************** *** 114,117 **** --- 121,132 ---- end; + function TokenList.Clone: &Object; + begin + Result := TokenList.Create; + TokenList(Result).FIndex := FIndex; + TokenList(Result).FList := IList(ICloneable(FList).Clone); + TokenList(Result).FSavePoints := Stack(ICloneable(FSavePoints).Clone); + end; + procedure TokenList.DiscardPointer; begin *************** *** 135,145 **** Result := Succ(FIndex) < FList.Count; if Result then ! Inc(FIndex) ! else ! if FSavePoints.Count = 0 then ! begin ! FIndex := -1; ! FList.Clear; ! end; end; --- 150,154 ---- Result := Succ(FIndex) < FList.Count; if Result then ! Inc(FIndex); end; |
Update of /cvsroot/jedidotnet/nunit In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18074/nunit Modified Files: NUnit Tests.bdsgroup Nunit.Jedi.IO.bdsproj Nunit.Jedi.System.bdsproj Nunit.Jedi.System.dpk Nunit.Jedi.nunit Added Files: Nunit.Jedi.Core.bdsproj Nunit.Jedi.Core.dpk Log Message: Adapted to new assembly structure Index: NUnit Tests.bdsgroup =================================================================== RCS file: /cvsroot/jedidotnet/nunit/NUnit Tests.bdsgroup,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** NUnit Tests.bdsgroup 5 Dec 2004 14:44:35 -0000 1.1 --- NUnit Tests.bdsgroup 24 Dec 2005 12:29:49 -0000 1.2 *************** *** 1,18 **** <?xml version="1.0" encoding="utf-8"?> <BorlandProject> ! <PersonalityInfo> ! <Option> ! <Option Name="Personality">Default.Personality</Option> ! <Option Name="ProjectType"></Option> ! <Option Name="Version">1.0</Option> ! <Option Name="GUID">{AF5A4C79-2061-45D1-B35D-41AF916937F0}</Option> ! </Option> ! </PersonalityInfo> ! <Default.Personality> <Projects> <Projects Name="Nunit.Jedi.System.dll">Nunit.Jedi.System.bdsproj</Projects> <Projects Name="Nunit.Jedi.IO.dll">Nunit.Jedi.IO.bdsproj</Projects> ! <Projects Name="Targets">Nunit.Jedi.System.dll Nunit.Jedi.IO.dll</Projects> </Projects> <Dependencies/> --- 1,19 ---- <?xml version="1.0" encoding="utf-8"?> <BorlandProject> ! <PersonalityInfo> ! <Option> ! <Option Name="Personality">Default.Personality</Option> ! <Option Name="ProjectType"></Option> ! <Option Name="Version">1.0</Option> ! <Option Name="GUID">{AF5A4C79-2061-45D1-B35D-41AF916937F0}</Option> ! </Option> ! </PersonalityInfo> ! <Default.Personality> <Projects> + <Projects Name="Nunit.Jedi.Core.dll">Nunit.Jedi.Core.bdsproj</Projects> <Projects Name="Nunit.Jedi.System.dll">Nunit.Jedi.System.bdsproj</Projects> <Projects Name="Nunit.Jedi.IO.dll">Nunit.Jedi.IO.bdsproj</Projects> ! <Projects Name="Targets">Nunit.Jedi.Core.dll Nunit.Jedi.System.dll Nunit.Jedi.IO.dll</Projects> </Projects> <Dependencies/> Index: Nunit.Jedi.IO.bdsproj =================================================================== RCS file: /cvsroot/jedidotnet/nunit/Nunit.Jedi.IO.bdsproj,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Nunit.Jedi.IO.bdsproj 23 Jan 2005 11:08:15 -0000 1.4 --- Nunit.Jedi.IO.bdsproj 24 Dec 2005 12:29:49 -0000 1.5 *************** *** 45,49 **** <Compiler Name="ShowHints">True</Compiler> <Compiler Name="ShowWarnings">True</Compiler> ! <Compiler Name="UnitAliases">WinTypes=Borland.Vcl.Windows;WinProcs=Borland.Vcl.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;Jedi.System=Jedi.System.Attributes, Jedi.System.Strings, Jedi.System.SourceVersioning;Jedi.Collections=Jedi.Collections.InlineEditable;Jedi.IO=Jedi.IO.FileOfRec, Jedi.IO.IniFiles, Jedi.IO.Paths</Compiler> <Compiler Name="NamespacePrefix"></Compiler> <Compiler Name="GenerateDocumentation">False</Compiler> --- 45,49 ---- <Compiler Name="ShowHints">True</Compiler> <Compiler Name="ShowWarnings">True</Compiler> ! <Compiler Name="UnitAliases">WinTypes=Borland.Vcl.Windows;WinProcs=Borland.Vcl.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler> <Compiler Name="NamespacePrefix"></Compiler> <Compiler Name="GenerateDocumentation">False</Compiler> Index: Nunit.Jedi.nunit =================================================================== RCS file: /cvsroot/jedidotnet/nunit/Nunit.Jedi.nunit,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Nunit.Jedi.nunit 5 Dec 2004 14:44:35 -0000 1.1 --- Nunit.Jedi.nunit 24 Dec 2005 12:29:49 -0000 1.2 *************** *** 2,5 **** --- 2,6 ---- <Settings activeconfig="Default" /> <Config name="Default" binpathtype="Auto"> + <assembly path="bin\Nunit.Jedi.Core.dll" /> <assembly path="bin\Nunit.Jedi.System.dll" /> <assembly path="bin\Nunit.Jedi.IO.dll" /> Index: Nunit.Jedi.System.dpk =================================================================== RCS file: /cvsroot/jedidotnet/nunit/Nunit.Jedi.System.dpk,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Nunit.Jedi.System.dpk 16 Jun 2005 13:23:01 -0000 1.9 --- Nunit.Jedi.System.dpk 24 Dec 2005 12:29:49 -0000 1.10 *************** *** 32,45 **** System.Data, System.XML, ! nunit.extensions; contains ! Jedi.System.Attributes.NUnit in 'source\Jedi.System.Attributes.NUnit.pas', ! Jedi.System.Strings.NUnit in 'source\Jedi.System.Strings.NUnit.pas', ! Jedi.System.SourceVersioning.NUnit in 'source\Jedi.System.SourceVersioning.NUnit.pas', ! Jedi.Timers.EventScheduler_NUnit in 'source\Jedi.Timers.EventScheduler_NUnit.pas', ! Jedi.System.CommandLine.NUnit in 'source\Jedi.System.CommandLine.NUnit.pas', ! Jedi.Timers.Schedules.Generic in 'source\Jedi.Timers.Schedules.Generic.pas', ! Jedi.Timers.Schedules.BasicSchedules in 'source\Jedi.Timers.Schedules.BasicSchedules.pas'; [assembly: AssemblyTitle('Nunit.Jedi.System')] --- 32,40 ---- System.Data, System.XML, ! nunit.extensions, ! Jedi.Text; contains ! Jedi.System.CommandLine.NUnit in 'source\Jedi.System.CommandLine.NUnit.pas'; [assembly: AssemblyTitle('Nunit.Jedi.System')] --- NEW FILE: Nunit.Jedi.Core.dpk --- package Nunit.Jedi.Core; {$ALIGN 0} {$ASSERTIONS ON} {$BOOLEVAL OFF} {$DEBUGINFO ON} {$EXTENDEDSYNTAX ON} {$IMPORTEDDATA ON} {$IOCHECKS ON} {$LOCALSYMBOLS ON} {$LONGSTRINGS ON} {$OPENSTRINGS ON} {$OPTIMIZATION ON} {$OVERFLOWCHECKS OFF} {$RANGECHECKS OFF} {$REFERENCEINFO ON} {$SAFEDIVIDE OFF} {$STACKFRAMES OFF} {$TYPEDADDRESS OFF} {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} {$IMAGEBASE $400000} {$IMPLICITBUILD OFF} requires Borland.Delphi, Jedi.Core, nunit.framework; contains Jedi.Timers.EventScheduler_NUnit in 'source\Jedi.Timers.EventScheduler_NUnit.pas', Jedi.Timers.Schedules.BasicSchedules in 'source\Jedi.Timers.Schedules.BasicSchedules.pas', Jedi.Timers.Schedules.Generic in 'source\Jedi.Timers.Schedules.Generic.pas', Jedi.System.Attributes.NUnit in 'source\Jedi.System.Attributes.NUnit.pas', Jedi.System.SourceVersioning.NUnit in 'source\Jedi.System.SourceVersioning.NUnit.pas', Jedi.System.Strings.NUnit in 'source\Jedi.System.Strings.NUnit.pas'; [assembly: AssemblyTitle('Nunit.Jedi.Core')] [assembly: AssemblyDescription('Unit tests for the Jedi.Core assembly.')] [assembly: AssemblyCompany('Project JEDI')] [assembly: AssemblyProduct('JEDI.NET Framework Class Library')] [assembly: AssemblyCopyright('Copyright © 2005 Project JEDI.')] [assembly: AssemblyCulture('')] [assembly: AssemblyVersion('1.0.0.0')] [assembly: AssemblyDelaySign(false)] [assembly: AssemblyKeyFile('')] [assembly: AssemblyKeyName('')] [assembly: ComVisible(False)] end. Index: Nunit.Jedi.System.bdsproj =================================================================== RCS file: /cvsroot/jedidotnet/nunit/Nunit.Jedi.System.bdsproj,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Nunit.Jedi.System.bdsproj 16 Jun 2005 13:23:01 -0000 1.10 --- Nunit.Jedi.System.bdsproj 24 Dec 2005 12:29:49 -0000 1.11 *************** *** 45,49 **** <Compiler Name="ShowHints" Type="Boolean">True</Compiler> <Compiler Name="ShowWarnings" Type="Boolean">True</Compiler> ! <Compiler Name="UnitAliases" Type="String">WinTypes=Borland.Vcl.Windows;WinProcs=Borland.Vcl.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;Jedi.System=Jedi.System.Attributes, Jedi.System.IniFiles, Jedi.System.Strings;Jedi.Timers=Jedi.Timers.EventScheduler</Compiler> <Compiler Name="NamespacePrefix" Type="String"></Compiler> <Compiler Name="GenerateDocumentation" Type="Boolean">False</Compiler> --- 45,49 ---- <Compiler Name="ShowHints" Type="Boolean">True</Compiler> <Compiler Name="ShowWarnings" Type="Boolean">True</Compiler> ! <Compiler Name="UnitAliases" Type="String">WinTypes=Borland.Vcl.Windows;WinProcs=Borland.Vcl.Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE;</Compiler> <Compiler Name="NamespacePrefix" Type="String"></Compiler> <Compiler Name="GenerateDocumentation" Type="Boolean">False</Compiler> *************** *** 121,128 **** <Directories Name="PackageDCPOutputDir" Type="String">bin</Directories> <Directories Name="SearchPath" Type="String">$(BDS)\Lib;..\main\bin</Directories> ! <Directories Name="Packages" Type="String">nunit.extensions.dll;System.XML.dll;System.Data.dll;Jedi.System;nunit.framework.dll;Borland.Delphi</Directories> <Directories Name="Conditionals" Type="String"></Directories> <Directories Name="DebugSourceDirs" Type="String"></Directories> ! <Directories Name="UsePackages" Type="Boolean">True</Directories> </Directories> <Parameters> --- 121,128 ---- <Directories Name="PackageDCPOutputDir" Type="String">bin</Directories> <Directories Name="SearchPath" Type="String">$(BDS)\Lib;..\main\bin</Directories> ! <Directories Name="Packages" Type="String">Jedi.Text;nunit.extensions.dll;System.XML.dll;System.Data.dll;Jedi.System;nunit.framework.dll;Borland.Delphi</Directories> <Directories Name="Conditionals" Type="String"></Directories> <Directories Name="DebugSourceDirs" Type="String"></Directories> ! <Directories Name="UsePackages" Type="Boolean">False</Directories> </Directories> <Parameters> *************** *** 174,188 **** <File FileName="Borland.Delphi.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Borland.Delphi" AssemblyName="borland.delphi" Version="9.0.1882.30496" LinkUnits="False"/> <File FileName="nunit.framework.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="nunit.framework" AssemblyName="nunit.framework" Version="2.2.1.0" LinkUnits="False"/> ! <File FileName="..\main\bin\Jedi.System.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Jedi.System" AssemblyName="Jedi.System" Version="1.0.0.0" LinkUnits="False"/> <File FileName="$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.Data.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="System.Data" AssemblyName="system.data" Version="1.0.5000.0" LinkUnits="False"/> <File FileName="$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.XML.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="System.XML" AssemblyName="system.xml" Version="1.0.5000.0" LinkUnits="False"/> <File FileName="nunit.extensions.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="nunit.extensions" AssemblyName="nunit.extensions" Version="2.2.1.0" LinkUnits="False"/> ! <File FileName="source\Jedi.System.Attributes.NUnit.pas" ContainerId="" ModuleName="Jedi.System.Attributes.NUnit"/> ! <File FileName="source\Jedi.System.Strings.NUnit.pas" ContainerId="" ModuleName="Jedi.System.Strings.NUnit"/> ! <File FileName="source\Jedi.System.SourceVersioning.NUnit.pas" ContainerId="" ModuleName="Jedi.System.SourceVersioning.NUnit"/> ! <File FileName="source\Jedi.Timers.EventScheduler_NUnit.pas" ContainerId="" ModuleName="Jedi.Timers.EventScheduler_NUnit"/> <File FileName="source\Jedi.System.CommandLine.NUnit.pas" ContainerId="" ModuleName="Jedi.System.CommandLine.NUnit"/> - <File FileName="source\Jedi.Timers.Schedules.Generic.pas" ContainerId="" ModuleName="Jedi.Timers.Schedules.Generic"/> - <File FileName="source\Jedi.Timers.Schedules.BasicSchedules.pas" ContainerId="" ModuleName="Jedi.Timers.Schedules.BasicSchedules"/> </FileList> </DelphiDotNet.Personality> --- 174,183 ---- <File FileName="Borland.Delphi.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Borland.Delphi" AssemblyName="borland.delphi" Version="9.0.1882.30496" LinkUnits="False"/> <File FileName="nunit.framework.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="nunit.framework" AssemblyName="nunit.framework" Version="2.2.1.0" LinkUnits="False"/> ! <File FileName="..\main\bin\Jedi.System.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Jedi.System" AssemblyName="Jedi.System" Version="1.0.2.0" LinkUnits="False"/> <File FileName="$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.Data.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="System.Data" AssemblyName="system.data" Version="1.0.5000.0" LinkUnits="False"/> <File FileName="$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.XML.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="System.XML" AssemblyName="system.xml" Version="1.0.5000.0" LinkUnits="False"/> <File FileName="nunit.extensions.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="nunit.extensions" AssemblyName="nunit.extensions" Version="2.2.1.0" LinkUnits="False"/> ! <File FileName="..\main\bin\Jedi.Text.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Jedi.Text" AssemblyName="Jedi.Text" Version="1.0.2.0" LinkUnits="False"/> <File FileName="source\Jedi.System.CommandLine.NUnit.pas" ContainerId="" ModuleName="Jedi.System.CommandLine.NUnit"/> </FileList> </DelphiDotNet.Personality> --- NEW FILE: Nunit.Jedi.Core.bdsproj --- (This appears to be a binary file; contents omitted.) |
From: Marcel B. <jed...@us...> - 2005-12-24 12:29:58
|
Update of /cvsroot/jedidotnet/nunit/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18074/nunit/source Modified Files: Jedi.IO.Paths.Nunit.pas Jedi.System.CommandLine.NUnit.pas Jedi.System.Strings.NUnit.pas Jedi.Timers.Schedules.Generic.pas Log Message: Adapted to new assembly structure Index: Jedi.IO.Paths.Nunit.pas =================================================================== RCS file: /cvsroot/jedidotnet/nunit/source/Jedi.IO.Paths.Nunit.pas,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Jedi.IO.Paths.Nunit.pas 29 Mar 2005 10:49:12 -0000 1.3 --- Jedi.IO.Paths.Nunit.pas 24 Dec 2005 12:29:49 -0000 1.4 *************** *** 305,309 **** begin Assert.AreEqual('myvolume#:folder1:folder2:folder3', ! Path.Normalize('myvolume#:folder1:folder2;folder3', Path.PathConfig.Create(':', ';', '#', ['$']))); end; {$ENDREGION} --- 305,309 ---- begin Assert.AreEqual('myvolume#:folder1:folder2:folder3', ! Path.Normalize('myvolume#:folder1:folder2;folder3', PathConfig.Create(':', ';', '#', ['$']))); end; {$ENDREGION} Index: Jedi.System.CommandLine.NUnit.pas =================================================================== RCS file: /cvsroot/jedidotnet/nunit/source/Jedi.System.CommandLine.NUnit.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Jedi.System.CommandLine.NUnit.pas 16 Jun 2005 13:20:53 -0000 1.2 --- Jedi.System.CommandLine.NUnit.pas 24 Dec 2005 12:29:49 -0000 1.3 *************** *** 6,9 **** --- 6,10 ---- uses Jedi.System.CommandLine, + Jedi.System.Resources, NUnit.Framework, System.Drawing, *************** *** 143,154 **** Errors = class public ! [Test, ! ExpectedException(TypeOf(CommandLineException), 'Duplicate command line argument (-o) specified by ' + ! '''Jedi.System.CommandLine.DoubleOptionSettings.Dummy''. The argument has already been assigned to '+ ! '''Jedi.System.CommandLine.CompilerSettings.Optimization''')] procedure DoubleOptions; ! [Test, ExpectedException(TypeOf(CommandLineException), 'Unknown argument: -o')] procedure NoCompilerSettings; ! [Test, ExpectedException(TypeOf(CommandLineException), 'Unknown argument: -z+')] procedure UnknownArgument; end; --- 144,152 ---- Errors = class public ! [Test] procedure DoubleOptions; ! [Test] procedure NoCompilerSettings; ! [Test] procedure UnknownArgument; end; *************** *** 234,238 **** [Test] procedure NoValueIgnores; [Test] procedure NoValueResets; - [ExpectedException(TypeOf(CommandLineException), 'Missing value. Argument: -throw')] [Test] procedure NoValueThrowsException; [Test] procedure NoValueToggles; --- 232,235 ---- *************** *** 241,244 **** --- 238,242 ---- {$ENDREGION} + {$REGION 'Enumeration cases'} type EnumType = (None, FirstValue, SecondValue, ThirdValue); *************** *** 264,267 **** --- 262,266 ---- [Test] procedure Value3; end; + {$ENDREGION} implementation *************** *** 410,418 **** files: array of string; begin ! files := CommandLine.Parse( ! 'process -throw', ! [TypeOf(SettingsBoolean)]); ! Assert.AreEqual(0, &Array(files).Length, 'wrong number of files returned.'); ! Assert.IsFalse(SettingsBoolean.NoValueThrowsException, '-throw without value should toggle (1).'); end; --- 409,426 ---- files: array of string; begin ! try ! files := CommandLine.Parse( ! 'process -throw', ! [TypeOf(SettingsBoolean)]); ! Assert.AreEqual(0, &Array(files).Length, 'wrong number of files returned.'); ! Assert.IsFalse(SettingsBoolean.NoValueThrowsException, '-throw without value should toggle (1).'); ! Assert.Fail('Exception Jedi.System.CommandLineException expected'); ! except ! on e: CommandLineException do ! if System.String.Compare(e.Message, Resources.CommandLine.ValueRequired('-throw')) <> 0 then ! Assert.Fail('Jedi.System.CommandLineException exception raised with wrong message. Actual message: {0}', [e.Message]); ! on e: System.Object do ! Assert.Fail('{0} exception raised; expected Jedi.System.CommandLineException', [e.GetType.FullName]); ! end; end; *************** *** 548,566 **** procedure Errors.DoubleOptions; begin ! CommandLine.Parse('process -o123 -ou..\Lib', [TypeOf(CompilerSettings), TypeOf(DirectorySettings), TypeOf(DoubleOptionSettings)]); end; procedure Errors.NoCompilerSettings; begin ! CommandLine.Parse( ! 'process -o -sSomePath;NextPath -oa..\Bin -ou"..\Temp Units" file_to_compile.dpk', ! [TypeOf(DirectorySettings)]); end; procedure Errors.UnknownArgument; begin ! CommandLine.Parse( ! 'process /o -z+ "some file.dpk"', ! [TypeOf(CompilerSettings), TypeOf(DirectorySettings)]); end; {$ENDREGION} --- 556,604 ---- procedure Errors.DoubleOptions; begin ! try ! CommandLine.Parse('process -o123 -ou..\Lib', [TypeOf(CompilerSettings), TypeOf(DirectorySettings), TypeOf(DoubleOptionSettings)]); ! Assert.Fail('Exception Jedi.System.CommandLineException expected'); ! except ! on e: CommandLineException do ! if System.String.Compare(e.Message, Resources.CommandLine.DuplicateSwitch( ! '-o', ! TypeOf(DoubleOptionSettings).GetProperty('Dummy'), ! TypeOf(CompilerSettings).GetProperty('Optimization'))) <> 0 then ! Assert.Fail('Jedi.System.CommandLineException exception raised with wrong message. Actual message: {0}', [e.Message]); ! on e: System.Object do ! Assert.Fail('{0} exception raised; expected Jedi.System.CommandLineException', [e.GetType.FullName]); ! end; end; procedure Errors.NoCompilerSettings; begin ! try ! CommandLine.Parse( ! 'process -o -sSomePath;NextPath -oa..\Bin -ou"..\Temp Units" file_to_compile.dpk', ! [TypeOf(DirectorySettings)]); ! Assert.Fail('Exception Jedi.System.CommandLineException expected'); ! except ! on e: CommandLineException do ! if System.String.Compare(e.Message, Resources.CommandLine.UnknownSwitch('-o')) <> 0 then ! Assert.Fail('Jedi.System.CommandLineException exception raised with wrong message. Actual message: {0}', [e.Message]); ! on e: System.Object do ! Assert.Fail('{0} exception raised; expected Jedi.System.CommandLineException', [e.GetType.FullName]); ! end; end; procedure Errors.UnknownArgument; begin ! try ! CommandLine.Parse( ! 'process /o -z+ "some file.dpk"', ! [TypeOf(CompilerSettings), TypeOf(DirectorySettings)]); ! Assert.Fail('Exception Jedi.System.CommandLineException expected'); ! except ! on e: CommandLineException do ! if System.String.Compare(e.Message, Resources.CommandLine.UnknownSwitch('-z+')) <> 0 then ! Assert.Fail('Jedi.System.CommandLineException exception raised with wrong message. Actual message: {0}', [e.Message]); ! on e: System.Object do ! Assert.Fail('{0} exception raised; expected Jedi.System.CommandLineException', [e.GetType.FullName]); ! end; end; {$ENDREGION} Index: Jedi.Timers.Schedules.Generic.pas =================================================================== RCS file: /cvsroot/jedidotnet/nunit/source/Jedi.Timers.Schedules.Generic.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Jedi.Timers.Schedules.Generic.pas 16 Jun 2005 13:19:44 -0000 1.1 --- Jedi.Timers.Schedules.Generic.pas 24 Dec 2005 12:29:49 -0000 1.2 *************** *** 78,82 **** public constructor Create(schedules: array of Schedule); - strict protected {$ENDREGION} {$REGION 'Overrides'} --- 78,81 ---- Index: Jedi.System.Strings.NUnit.pas =================================================================== RCS file: /cvsroot/jedidotnet/nunit/source/Jedi.System.Strings.NUnit.pas,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Jedi.System.Strings.NUnit.pas 4 Mar 2005 14:48:38 -0000 1.3 --- Jedi.System.Strings.NUnit.pas 24 Dec 2005 12:29:49 -0000 1.4 *************** *** 4,18 **** uses ! Jedi.System, NUnit.Framework; type [TestFixture] ! TabSet = class {$REGION 'Test data'} strict protected ! TabSet1: StringUtils.TabSet; ! TabSet2: StringUtils.TabSet; ! TabSet3: StringUtils.TabSet; {$ENDREGION} {$REGION 'SetUp/TearDown methods'} --- 4,19 ---- uses ! Jedi.Core.Resources, ! Jedi.System.Strings, NUnit.Framework; type [TestFixture] ! TabSets = class {$REGION 'Test data'} strict protected ! TabSet1: TabSet; ! TabSet2: TabSet; ! TabSet3: TabSet; {$ENDREGION} {$REGION 'SetUp/TearDown methods'} *************** *** 65,71 **** [Test] procedure RoundtripComplexString; [Test] procedure RoundtripComplexStringWithAlternateQuoting; - [ExpectedException(TypeOf(FormatException), 'String ends in garbage.')] [Test] procedure DequoteStringWithGarbage; - [ExpectedException(TypeOf(FormatException), 'End quote missing.')] [Test] procedure DequoteStringWithoutEndQuote; [Test] procedure DequoteStringWithAllowedGarbage; --- 66,70 ---- *************** *** 132,135 **** --- 131,135 ---- const sTabTest1 = 'Abc'#9'Def Ghi'#9'Jkl'#9#9'Mno'#9#9#9'Pqr'; const sTabTest2 = #9'Abc'#9'Def Ghi'#9'Jkl'#9#9'Mno'#9#9#9'Pqr'; + const sTabTest3 = 'Abc'#9#9'Def'#10#9'Ghi'#13#10#13#10#9#9'Jkl'; // 1 2 3 4 5 6 7 // 01234567890123456789012345678901234567890123456789012345678901234567890123456789 *************** *** 140,143 **** --- 140,175 ---- const sTabTest2Output2 = ' Abc Def Ghi Jkl Mno Pqr'; const sTabTest2Output3 = ' Abc Def Ghi Jkl Mno Pqr'; + const sTabTest3Output1 = 'Abc Def'#10 + + ' Ghi'#13#10#13#10 + + ' Jkl'; + const sTabTest3Output2 = 'Abc Def'#10 + + ' Ghi'#13#10#13#10+ + ' Jkl'; + const sTabTest3Output3 = 'Abc Def'#10 + + ' Ghi'#13#10#13#10+ + ' Jkl'; + {$ENDREGION} + {$REGION 'Tabify test constants'} + strict protected + // 1 2 3 4 5 6 7 + // 01234567890123456789012345678901234567890123456789012345678901234567890123456789 + const sTabifyTest1 = ' Abc def ghi jkl mnop qr stu vwx'; + const sTabifyTest2 = 'Dummy LD A, (HL) ; First line'#13#10+ + ' INC HL '#9#9'; Second line'#13#10+ + ' '#9'LD C, (HL)'; + + const sTabifyTest1Out1 = #9#9' Abc'#9#9#9#9#9#9#9#9' def'#9#9' ghi'#9'jkl'#9#9#9' mnop qr'#9'stu'#9#9'vwx'; + const sTabifyTest1Out2 = ' Abc'#9#9 + + ' def ghi jkl'#9 + + ' mnop qr'#9'stu'#9' vwx'; + const sTabifyTest1Out3 = ' Abc'#9#9 + + ' def ghi jkl'#9#9 + + ' mnop qr'#9'stu'#9#9'vwx'; + const sTabifyTest2Out1 = 'Dummy'#9#9#9#9#9' LD'#9#9'A, (HL)'#9#9#9#9#9#9#9#9#9'; First line'#13#10+ + #9#9#9#9#9#9#9' INC'#9'HL'#9#9#9#9'; Second line'#13#10+ + #9#9'LD'#9' C, (HL)'; + const sTabifyTest2Out2 = 'Dummy'#9'LD'#9'A, (HL)'#9#9'; First line'#13#10+ + #9'INC'#9'HL'#9#9'; Second line'#13#10+ + #9'LD'#9'C, (HL)'; {$ENDREGION} {$REGION 'Duplicate removal test constants'} *************** *** 157,160 **** --- 189,193 ---- [Test] procedure RemoveDuplicates; [Test] procedure &Repeat; + [Test] procedure Tabify; end; *************** *** 263,282 **** procedure Manipulations.ExpandTabs; var ! tabSet1: StringUtils.TabSet; ! tabSet2: StringUtils.TabSet; ! tabSet3: StringUtils.TabSet; begin ! tabSet1 := StringUtils.TabSet.Create(2); ! tabSet2 := StringUtils.TabSet.Create([15, 20, 40, 44]); ! tabSet3 := StringUtils.TabSet.Create([15, 20, 40, 44], 2); Assert.AreEqual(sTabTest1Output1, StringUtils.ExpandTabs(sTabTest1, tabSet1), 'sTabTest1Output1'); Assert.AreEqual(sTabTest2Output1, StringUtils.ExpandTabs(sTabTest2, tabSet1), 'sTabTest2Output1'); Assert.AreEqual(sTabTest1Output2, StringUtils.ExpandTabs(sTabTest1, tabSet2), 'sTabTest1Output2'); Assert.AreEqual(sTabTest2Output2, StringUtils.ExpandTabs(sTabTest2, tabSet2), 'sTabTest2Output2'); Assert.AreEqual(sTabTest1Output3, StringUtils.ExpandTabs(sTabTest1, tabSet3), 'sTabTest1Output3'); Assert.AreEqual(sTabTest2Output3, StringUtils.ExpandTabs(sTabTest2, tabSet3), 'sTabTest2Output3'); end; --- 296,318 ---- procedure Manipulations.ExpandTabs; var ! tabSet1: TabSet; ! tabSet2: TabSet; ! tabSet3: TabSet; begin ! tabSet1 := TabSet.Create(2); ! tabSet2 := TabSet.Create([15, 20, 40, 44]); ! tabSet3 := TabSet.Create([15, 20, 40, 44], 2); Assert.AreEqual(sTabTest1Output1, StringUtils.ExpandTabs(sTabTest1, tabSet1), 'sTabTest1Output1'); Assert.AreEqual(sTabTest2Output1, StringUtils.ExpandTabs(sTabTest2, tabSet1), 'sTabTest2Output1'); + Assert.AreEqual(sTabTest3Output1, StringUtils.ExpandTabs(sTabTest3, tabSet1), 'sTabTest3Output1'); Assert.AreEqual(sTabTest1Output2, StringUtils.ExpandTabs(sTabTest1, tabSet2), 'sTabTest1Output2'); Assert.AreEqual(sTabTest2Output2, StringUtils.ExpandTabs(sTabTest2, tabSet2), 'sTabTest2Output2'); + Assert.AreEqual(sTabTest3Output2, StringUtils.ExpandTabs(sTabTest3, tabSet2), 'sTabTest3Output2'); Assert.AreEqual(sTabTest1Output3, StringUtils.ExpandTabs(sTabTest1, tabSet3), 'sTabTest1Output3'); Assert.AreEqual(sTabTest2Output3, StringUtils.ExpandTabs(sTabTest2, tabSet3), 'sTabTest2Output3'); + Assert.AreEqual(sTabTest3Output3, StringUtils.ExpandTabs(sTabTest3, tabSet3), 'sTabTest3Output3'); end; *************** *** 292,295 **** --- 328,349 ---- Assert.AreEqual(sRepeatOutput10, StringUtils.&Repeat(sRepeatInput, 10), 'Count=10'); end; + + procedure Manipulations.Tabify; + var + tabSet1: TabSet; + tabSet2: TabSet; + tabSet3: TabSet; + begin + tabSet1 := TabSet.Create(2); + tabSet2 := TabSet.Create([15, 20, 40, 44]); + tabSet3 := TabSet.Create([15, 20, 40, 44], 2); + + Assert.AreEqual(sTabifyTest1Out1, StringUtils.Tabify(sTabifyTest1, tabSet1), 'sTabifyTest1Out1'); + Assert.AreEqual(sTabifyTest1Out2, StringUtils.Tabify(sTabifyTest1, tabSet2), 'sTabifyTest1Out2'); + Assert.AreEqual(sTabifyTest1Out3, StringUtils.Tabify(sTabifyTest1, tabSet3), 'sTabifyTest1Out3'); + + Assert.AreEqual(sTabifyTest2Out1, StringUtils.Tabify(sTabifyTest2, tabSet1), 'sTabifyTest2Out1'); + Assert.AreEqual(sTabifyTest2Out2, StringUtils.Tabify(sTabifyTest2, tabSet2), 'sTabifyTest2Out2'); + end; {$ENDREGION} *************** *** 555,560 **** s: string; begin ! s := StringUtils.ExtractQuotedString(sSimpleTestWithGarbageQuoted); ! Assert.Fail('Should result in an exception. Resulting string={0}', [s]); end; --- 609,622 ---- s: string; begin ! try ! s := StringUtils.ExtractQuotedString(sSimpleTestWithGarbageQuoted); ! Assert.Fail('System.FormatException expected, but none raised. Resulting string={0}', [s]); ! except ! on e: FormatException do ! if System.String.Compare(e.Message, Resources.StringUtils.QuotedStringEndsInGarbage) <> 0 then ! Assert.Fail('System.FormatException raised with wrong message. Message raised: {0}', [e.Message]); ! on e: System.Object do ! Assert.Fail('System.FormatException expected, but {0} raised.', [e.GetType.FullName]); ! end; end; *************** *** 563,568 **** s: string; begin ! s := StringUtils.ExtractQuotedString(sSimpleTestMissingEndQuote); ! Assert.Fail('Should result in an exception. Resulting string={0}', [s]); end; --- 625,638 ---- s: string; begin ! try ! s := StringUtils.ExtractQuotedString(sSimpleTestMissingEndQuote); ! Assert.Fail('System.FormatException expected, but none raised. Resulting string={0}', [s]); ! except ! on e: FormatException do ! if System.String.Compare(e.Message, Resources.StringUtils.QuotedStringIsMissingEndQuote) <> 0 then ! Assert.Fail('System.FormatException raised with wrong message. Message raised: {0}', [e.Message]); ! on e: System.Object do ! Assert.Fail('System.FormatException expected, but {0} raised.', [e.GetType.FullName]); ! end; end; *************** *** 766,790 **** {$ENDREGION} ! {$REGION 'TabSet'} ! procedure TabSet.ConvertToString; begin Assert.AreEqual('[] and every 2', TabSet1.ToString, 'TabSet1.ToString'); Assert.AreEqual('[15,20,40,44] and every 4 (automatic)', TabSet2.ToString, 'TabSet2.ToString'); Assert.AreEqual('[15,20,40,44] and every 2', TabSet3.ToString, 'TabSet3.ToString'); ! Assert.AreEqual('[] and every 2 (automatic)', StringUtils.TabSet.Create.ToString, 'StringUtils.TabSet.Create.ToString'); ! Assert.AreEqual('every 2 (automatic)', StringUtils.TabSet.Create.ToString(True, False, True), ! 'StringUtils.TabSet.Create.ToString(true, false, true)'); ! Assert.AreEqual('15,20,40,44', TabSet2.ToString(False, False, False), 'TabSet2.ToString(false, false, false)'); end; ! procedure TabSet.Init; begin ! TabSet1 := StringUtils.TabSet.Create(2); ! TabSet2 := StringUtils.TabSet.Create([15, 20, 40, 44]); ! TabSet3 := StringUtils.TabSet.Create([15, 20, 40, 44], 2); end; ! procedure TabSet.SimpleTabulation; begin // TabSet1 should always tabulate to even positions --- 836,861 ---- {$ENDREGION} ! {$REGION 'TabSets'} ! procedure TabSets.ConvertToString; begin Assert.AreEqual('[] and every 2', TabSet1.ToString, 'TabSet1.ToString'); Assert.AreEqual('[15,20,40,44] and every 4 (automatic)', TabSet2.ToString, 'TabSet2.ToString'); Assert.AreEqual('[15,20,40,44] and every 2', TabSet3.ToString, 'TabSet3.ToString'); ! Assert.AreEqual('[] and every 2 (automatic)', TabSet.Create.ToString, 'StringUtils.TabSet.Create.ToString'); ! Assert.AreEqual('every 2 (automatic)', TabSet.Create.ToString(TabSetStringFormattingOptions.DefaultWidthOnly), ! 'TabSet.Create.ToString(TabSetStringFormattingOptions.DefaultWidthOnly)'); ! Assert.AreEqual('15,20,40,44', TabSet2.ToString(TabSetStringFormattingOptions.StopsOnly), ! 'TabSet2.ToString(TabSetStringFormattingOptions.StopsOnly)'); end; ! procedure TabSets.Init; begin ! TabSet1 := TabSet.Create(2); ! TabSet2 := TabSet.Create([15, 20, 40, 44]); ! TabSet3 := TabSet.Create([15, 20, 40, 44], 2); end; ! procedure TabSets.SimpleTabulation; begin // TabSet1 should always tabulate to even positions *************** *** 796,800 **** end; ! procedure TabSet.SpecifiedTabsWithAutoDefault; var i: Integer; --- 867,871 ---- end; ! procedure TabSets.SpecifiedTabsWithAutoDefault; var i: Integer; *************** *** 815,819 **** end; ! procedure TabSet.SpecifiedTabsWithDefault; var i: Integer; --- 886,890 ---- end; ! procedure TabSets.SpecifiedTabsWithDefault; var i: Integer; *************** *** 838,846 **** end; ! procedure TabSet.CloneAndEqual; var ! tempSet: StringUtils.TabSet; begin ! tempSet := StringUtils.TabSet(TabSet1.Clone); Assert.AreNotSame(TabSet1, tempSet); Assert.AreEqual(TabSet1, tempSet, 'Cloned'); --- 909,917 ---- end; ! procedure TabSets.CloneAndEqual; var ! tempSet: TabSet; begin ! tempSet := TabSet(TabSet1.Clone); Assert.AreNotSame(TabSet1, tempSet); Assert.AreEqual(TabSet1, tempSet, 'Cloned'); *************** *** 855,864 **** end; ! procedure TabSet.RemovingTabs; var ! tempSet: StringUtils.TabSet; i: Integer; begin ! tempSet := StringUtils.TabSet(TabSet2.Clone); tempSet.Remove(20); for i := 0 to 14 do --- 926,935 ---- end; ! procedure TabSets.RemovingTabs; var ! tempSet: TabSet; i: Integer; begin ! tempSet := TabSet(TabSet2.Clone); tempSet.Remove(20); for i := 0 to 14 do *************** *** 877,881 **** Assert.AreEqual(tempSet.TabFrom(i), 60, 'Removed 20; Tabulate from {0}', [i]); ! tempSet := StringUtils.TabSet(TabSet2.Clone); tempSet.Remove(40); for i := 0 to 14 do --- 948,952 ---- Assert.AreEqual(tempSet.TabFrom(i), 60, 'Removed 20; Tabulate from {0}', [i]); ! tempSet := TabSet(TabSet2.Clone); tempSet.Remove(40); for i := 0 to 14 do *************** *** 894,898 **** Assert.AreEqual(tempSet.TabFrom(i), 140, 'Removed 40; Tabulate from {0}', [i]); ! tempSet := StringUtils.TabSet(TabSet2.Clone); tempSet.Remove(40, True); for i := 0 to 14 do --- 965,969 ---- Assert.AreEqual(tempSet.TabFrom(i), 140, 'Removed 40; Tabulate from {0}', [i]); ! tempSet := TabSet(TabSet2.Clone); tempSet.Remove(40, True); for i := 0 to 14 do *************** *** 912,922 **** end; ! procedure TabSet.AddingTabs; var ! tempSet: StringUtils.TabSet; ! tempSet2: StringUtils.TabSet; i: Integer; begin ! tempSet := StringUtils.TabSet(TabSet2.Clone); tempSet.Add(42); for i := 0 to 14 do --- 983,993 ---- end; ! procedure TabSets.AddingTabs; var ! tempSet: TabSet; ! tempSet2: TabSet; i: Integer; begin ! tempSet := TabSet(TabSet2.Clone); tempSet.Add(42); for i := 0 to 14 do *************** *** 938,942 **** for i := 50 to 51 do Assert.AreEqual(tempSet.TabFrom(i), 52, 'Added 42; Tabulate from {0}', [i]); ! tempSet2 := StringUtils.TabSet.Create([40, 20, 15], 2); Assert.AreEqual(tempSet2, tempSet); end; --- 1009,1013 ---- for i := 50 to 51 do Assert.AreEqual(tempSet.TabFrom(i), 52, 'Added 42; Tabulate from {0}', [i]); ! tempSet2 := TabSet.Create([40, 20, 15], 2); Assert.AreEqual(tempSet2, tempSet); end; |
From: Marcel B. <jed...@us...> - 2005-12-24 12:26:46
|
Update of /cvsroot/jedidotnet/main/assemblies In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17682/main/assemblies Modified Files: Jedi.Drawing.bdsproj Jedi.Drawing.dpk Jedi.IO.bdsproj Jedi.IO.dpk Jedi.System.bdsproj Jedi.System.dpk Added Files: Jedi.Core.bdsproj Jedi.Core.dpk Jedi.Text.bdsproj Jedi.Text.dpk Log Message: * Rearranged classes into new assembly division * Moved assembly info attributes into new assembly info files --- NEW FILE: Jedi.Text.bdsproj --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Jedi.Core.bdsproj --- (This appears to be a binary file; contents omitted.) Index: Jedi.IO.dpk =================================================================== RCS file: /cvsroot/jedidotnet/main/assemblies/Jedi.IO.dpk,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Jedi.IO.dpk 22 Jan 2005 17:59:14 -0000 1.3 --- Jedi.IO.dpk 24 Dec 2005 12:26:37 -0000 1.4 *************** *** 24,50 **** {$IMAGEBASE $400000} {$IMPLICITBUILD OFF} requires Borland.Delphi, ! Jedi.System; contains Jedi.IO.Paths in '..\run\Jedi.IO.Paths.pas', Jedi.IO.FileOfRec in '..\run\Jedi.IO.FileOfRec.pas', ! Jedi.IO.IniFiles in '..\run\Jedi.IO.IniFiles.pas'; ! ! [assembly: AssemblyTitle('Jedi.IO')] ! [assembly: AssemblyDescription('.NET IO classes.')] ! [assembly: AssemblyCompany('Project JEDI')] ! [assembly: AssemblyProduct('JEDI.NET Framework Class Library')] ! [assembly: AssemblyCopyright('Copyright © 2004 Project JEDI.')] ! [assembly: AssemblyCulture('')] ! [assembly: AssemblyVersion('1.0.0.0')] ! ! [assembly: AssemblyDelaySign(false)] ! [assembly: AssemblyKeyFile('')] ! [assembly: AssemblyKeyName('')] ! ! [assembly: ComVisible(False)] end. --- 24,42 ---- {$IMAGEBASE $400000} {$IMPLICITBUILD OFF} + {$R '..\resources\Jedi.IO.resources' '..\resources\Jedi.IO.resx'} requires Borland.Delphi, ! Jedi.Core, ! System, ! System.Data, ! System.XML; contains Jedi.IO.Paths in '..\run\Jedi.IO.Paths.pas', Jedi.IO.FileOfRec in '..\run\Jedi.IO.FileOfRec.pas', ! Jedi.IO.IniFiles in '..\run\Jedi.IO.IniFiles.pas', ! Jedi_IO_AssemblyInfo in '..\run\Jedi_IO_AssemblyInfo.pas', ! Jedi.IO.Resources in '..\run\Jedi.IO.Resources.pas'; end. --- NEW FILE: Jedi.Text.dpk --- package Jedi.Text; {$ALIGN 0} {$ASSERTIONS ON} {$BOOLEVAL OFF} {$DEBUGINFO ON} {$EXTENDEDSYNTAX ON} {$IMPORTEDDATA ON} {$IOCHECKS ON} {$LOCALSYMBOLS ON} {$LONGSTRINGS ON} {$OPENSTRINGS ON} {$OPTIMIZATION ON} {$OVERFLOWCHECKS OFF} {$RANGECHECKS OFF} {$REFERENCEINFO ON} {$SAFEDIVIDE OFF} {$STACKFRAMES OFF} {$TYPEDADDRESS OFF} {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} {$IMAGEBASE $400000} {$IMPLICITBUILD OFF} {$R '..\resources\Jedi.Text.resources' '..\resources\Jedi.Text.resx'} requires Borland.Delphi, System, System.Data, System.XML, Jedi.Core; contains Jedi.Text.Tokenization.TokenBase in '..\run\Jedi.Text.Tokenization.TokenBase.pas', Jedi.Text.Tokenization.InputBase in '..\run\Jedi.Text.Tokenization.InputBase.pas', Jedi.Text.Tokenization.ProviderBase in '..\run\Jedi.Text.Tokenization.ProviderBase.pas', Jedi.Text.Tokenization.TokenizerBase in '..\run\Jedi.Text.Tokenization.TokenizerBase.pas', Jedi_Text_AssemblyInfo in '..\run\Jedi_Text_AssemblyInfo.pas', Jedi.Text.Resources in '..\run\Jedi.Text.Resources.pas'; end. Index: Jedi.System.dpk =================================================================== RCS file: /cvsroot/jedidotnet/main/assemblies/Jedi.System.dpk,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Jedi.System.dpk 16 Jun 2005 13:15:48 -0000 1.7 --- Jedi.System.dpk 24 Dec 2005 12:26:37 -0000 1.8 *************** *** 24,55 **** {$IMAGEBASE $400000} {$IMPLICITBUILD OFF} requires Borland.Delphi, ! System.Drawing; contains ! Jedi.Collections.InlineEditable in '..\run\Jedi.Collections.InlineEditable.pas', ! Jedi.System.Attributes in '..\run\Jedi.System.Attributes.pas', ! Jedi.System.Strings in '..\run\Jedi.System.Strings.pas', ! Jedi.System.SourceVersioning in '..\run\Jedi.System.SourceVersioning.pas', ! Jedi.System.FrameworkResources in '..\run\Jedi.System.FrameworkResources.pas', ! Jedi.Timers.EventScheduler in '..\run\Jedi.Timers.EventScheduler.pas', Jedi.System.CommandLine in '..\run\Jedi.System.CommandLine.pas', ! Jedi.Timers.Schedules in '..\run\Jedi.Timers.Schedules.pas'; ! ! [assembly: AssemblyTitle('Jedi.System')] ! [assembly: AssemblyDescription('.NET core classes.')] ! [assembly: AssemblyCompany('Project JEDI')] ! [assembly: AssemblyProduct('JEDI.NET Framework Class Library')] ! [assembly: AssemblyCopyright('Copyright © 2004 Project JEDI.')] ! [assembly: AssemblyCulture('')] ! [assembly: AssemblyVersion('1.0.0.0')] ! ! [assembly: AssemblyDelaySign(false)] ! [assembly: AssemblyKeyFile('')] ! [assembly: AssemblyKeyName('')] ! ! [assembly: ComVisible(False)] end. --- 24,50 ---- {$IMAGEBASE $400000} {$IMPLICITBUILD OFF} + {$R '..\resources\Jedi.System.resources' '..\resources\Jedi.System.resx'} requires Borland.Delphi, ! System.Drawing, ! Jedi.Core, ! Jedi.Text; contains ! Jedi_System_AssemblyInfo in '..\run\Jedi_System_AssemblyInfo.pas', ! Jedi.System.Resources in '..\run\Jedi.System.Resources.pas', Jedi.System.CommandLine in '..\run\Jedi.System.CommandLine.pas', ! Jedi.Math.Evaluation.Base in '..\run\Jedi.Math.Evaluation.Base.pas', ! Jedi.Math.Evaluation.BinaryNodes in '..\run\Jedi.Math.Evaluation.BinaryNodes.pas', ! Jedi.Math.Evaluation.CompilingProcessor in '..\run\Jedi.Math.Evaluation.CompilingProcessor.pas', ! Jedi.Math.Evaluation.CompilingProcessor.NodeBase in '..\run\Jedi.Math.Evaluation.CompilingProcessor.NodeBase.pas', ! Jedi.Math.Evaluation.EvalProcessor in '..\run\Jedi.Math.Evaluation.EvalProcessor.pas', ! Jedi.Math.Evaluation.Namespaces.Generic in '..\run\Jedi.Math.Evaluation.Namespaces.Generic.pas', ! Jedi.Math.Evaluation.TenaryNodes in '..\run\Jedi.Math.Evaluation.TenaryNodes.pas', ! Jedi.Math.Evaluation.Tokenization in '..\run\Jedi.Math.Evaluation.Tokenization.pas', ! Jedi.Math.Evaluation.Tokens in '..\run\Jedi.Math.Evaluation.Tokens.pas', ! Jedi.Math.Evaluation.UnaryNodes in '..\run\Jedi.Math.Evaluation.UnaryNodes.pas', ! Jedi.Math.Evaluation.ValueNodes in '..\run\Jedi.Math.Evaluation.ValueNodes.pas'; end. Index: Jedi.Drawing.dpk =================================================================== RCS file: /cvsroot/jedidotnet/main/assemblies/Jedi.Drawing.dpk,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Jedi.Drawing.dpk 22 Jan 2005 15:27:54 -0000 1.4 --- Jedi.Drawing.dpk 24 Dec 2005 12:26:37 -0000 1.5 *************** *** 28,49 **** Borland.Delphi, System.Drawing, ! Jedi.System; contains ! Jedi.Drawing.Colors in '..\run\Jedi.Drawing.Colors.pas'; ! ! [assembly: AssemblyTitle('Jedi.Drawing')] ! [assembly: AssemblyDescription('.NET graphic classes.')] ! [assembly: AssemblyCompany('Project JEDI')] ! [assembly: AssemblyProduct('JEDI.NET Framework Class Library')] ! [assembly: AssemblyCopyright('Copyright © 2004 Project JEDI.')] ! [assembly: AssemblyCulture('')] ! [assembly: AssemblyVersion('1.0.0.0')] ! ! [assembly: AssemblyDelaySign(false)] ! [assembly: AssemblyKeyFile('')] ! [assembly: AssemblyKeyName('')] ! ! [assembly: ComVisible(False)] end. --- 28,36 ---- Borland.Delphi, System.Drawing, ! Jedi.Core; contains ! Jedi.Drawing.Colors in '..\run\Jedi.Drawing.Colors.pas', ! Jedi_Drawing_AssemblyInfo in '..\run\Jedi_Drawing_AssemblyInfo.pas'; end. Index: Jedi.IO.bdsproj =================================================================== RCS file: /cvsroot/jedidotnet/main/assemblies/Jedi.IO.bdsproj,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Jedi.IO.bdsproj 29 Mar 2005 18:30:20 -0000 1.7 --- Jedi.IO.bdsproj 24 Dec 2005 12:26:37 -0000 1.8 *************** *** 120,125 **** <Directories Name="PackageDLLOutputDir">..\bin</Directories> <Directories Name="PackageDCPOutputDir">..\bin</Directories> ! <Directories Name="SearchPath">$(BDS)\Lib;..\bin</Directories> ! <Directories Name="Packages">Jedi.System;Borland.Delphi</Directories> <Directories Name="Conditionals"></Directories> <Directories Name="DebugSourceDirs"></Directories> --- 120,125 ---- <Directories Name="PackageDLLOutputDir">..\bin</Directories> <Directories Name="PackageDCPOutputDir">..\bin</Directories> ! <Directories Name="SearchPath">$(BDS)\Lib;..\bin;</Directories> ! <Directories Name="Packages">System.XML.dll;System.Data.dll;System.dll;Jedi.Core;Borland.Delphi</Directories> <Directories Name="Conditionals"></Directories> <Directories Name="DebugSourceDirs"></Directories> *************** *** 171,179 **** </VersionInfoKeys> <FileList> ! <File FileName="Borland.Delphi.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Borland.Delphi" AssemblyName="borland.delphi" Version="9.0.1761.24408" LinkUnits="False"/> ! <File FileName="..\bin\Jedi.System.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Jedi.System" AssemblyName="Jedi.System" Version="1.0.0.0" LinkUnits="False"/> <File FileName="..\run\Jedi.IO.Paths.pas" ContainerId="" ModuleName="Jedi.IO.Paths"/> <File FileName="..\run\Jedi.IO.FileOfRec.pas" ContainerId="" ModuleName="Jedi.IO.FileOfRec"/> <File FileName="..\run\Jedi.IO.IniFiles.pas" ContainerId="" ModuleName="Jedi.IO.IniFiles"/> </FileList> </DelphiDotNet.Personality> --- 171,185 ---- </VersionInfoKeys> <FileList> ! <File FileName="..\resources\Jedi.IO.resx" ContainerId="ResXCompiler" ModuleName="Jedi.IO"/> ! <File FileName="Borland.Delphi.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Borland.Delphi" AssemblyName="borland.delphi" Version="9.0.1882.30496" LinkUnits="False"/> ! <File FileName="..\bin\Jedi.Core.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Jedi.Core" AssemblyName="Jedi.Core" Version="1.0.2.0" LinkUnits="False"/> ! <File FileName="$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="System" AssemblyName="system" Version="1.0.5000.0" LinkUnits="False"/> ! <File FileName="$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.Data.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="System.Data" AssemblyName="system.data" Version="1.0.5000.0" LinkUnits="False"/> ! <File FileName="$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.XML.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="System.XML" AssemblyName="system.xml" Version="1.0.5000.0" LinkUnits="False"/> <File FileName="..\run\Jedi.IO.Paths.pas" ContainerId="" ModuleName="Jedi.IO.Paths"/> <File FileName="..\run\Jedi.IO.FileOfRec.pas" ContainerId="" ModuleName="Jedi.IO.FileOfRec"/> <File FileName="..\run\Jedi.IO.IniFiles.pas" ContainerId="" ModuleName="Jedi.IO.IniFiles"/> + <File FileName="..\run\Jedi_IO_AssemblyInfo.pas" ContainerId="" ModuleName="Jedi_IO_AssemblyInfo"/> + <File FileName="..\run\Jedi.IO.Resources.pas" ContainerId="" ModuleName="Jedi.IO.Resources"/> </FileList> </DelphiDotNet.Personality> Index: Jedi.System.bdsproj =================================================================== RCS file: /cvsroot/jedidotnet/main/assemblies/Jedi.System.bdsproj,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Jedi.System.bdsproj 16 Jun 2005 13:15:48 -0000 1.7 --- Jedi.System.bdsproj 24 Dec 2005 12:26:37 -0000 1.8 *************** *** 1,3 **** ! <?xml version="1.0" encoding="utf-8"?> <BorlandProject> <PersonalityInfo> --- 1,3 ---- ! <?xml version="1.0" encoding="utf-8"?> <BorlandProject> <PersonalityInfo> *************** *** 121,125 **** <Directories Name="PackageDCPOutputDir">..\bin</Directories> <Directories Name="SearchPath">$(BDS)\Lib;..\bin</Directories> ! <Directories Name="Packages">System.Drawing.dll;Borland.Delphi</Directories> <Directories Name="Conditionals"></Directories> <Directories Name="DebugSourceDirs"></Directories> --- 121,125 ---- <Directories Name="PackageDCPOutputDir">..\bin</Directories> <Directories Name="SearchPath">$(BDS)\Lib;..\bin</Directories> ! <Directories Name="Packages">Jedi.Text;Jedi.Core;Borland.Delphi</Directories> <Directories Name="Conditionals"></Directories> <Directories Name="DebugSourceDirs"></Directories> *************** *** 171,184 **** </VersionInfoKeys> <FileList> <File FileName="Borland.Delphi.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Borland.Delphi" AssemblyName="Borland.Delphi" Version="9.0.1882.30496" LinkUnits="False"/> ! <File FileName="$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.Drawing.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="System.Drawing" AssemblyName="System.Drawing" Version="1.0.5000.0" LinkUnits="False"/> ! <File FileName="..\run\Jedi.Collections.InlineEditable.pas" ContainerId="" ModuleName="Jedi.Collections.InlineEditable"/> ! <File FileName="..\run\Jedi.System.Attributes.pas" ContainerId="" ModuleName="Jedi.System.Attributes"/> ! <File FileName="..\run\Jedi.System.Strings.pas" ContainerId="" ModuleName="Jedi.System.Strings"/> ! <File FileName="..\run\Jedi.System.SourceVersioning.pas" ContainerId="" ModuleName="Jedi.System.SourceVersioning"/> ! <File FileName="..\run\Jedi.System.FrameworkResources.pas" ContainerId="" ModuleName="Jedi.System.FrameworkResources"/> ! <File FileName="..\run\Jedi.Timers.EventScheduler.pas" ContainerId="" ModuleName="Jedi.Timers.EventScheduler"/> <File FileName="..\run\Jedi.System.CommandLine.pas" ContainerId="" ModuleName="Jedi.System.CommandLine"/> ! <File FileName="..\run\Jedi.Timers.Schedules.pas" ContainerId="" ModuleName="Jedi.Timers.Schedules"/> </FileList> </DelphiDotNet.Personality> --- 171,192 ---- </VersionInfoKeys> <FileList> + <File FileName="..\resources\Jedi.System.resx" ContainerId="ResXCompiler" ModuleName="Jedi.System"/> <File FileName="Borland.Delphi.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Borland.Delphi" AssemblyName="Borland.Delphi" Version="9.0.1882.30496" LinkUnits="False"/> ! <File FileName="..\bin\Jedi.Core.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Jedi.Core" AssemblyName="Jedi.Core" Version="1.0.2.0" LinkUnits="False"/> ! <File FileName="..\bin\Jedi.Text.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Jedi.Text" AssemblyName="Jedi.Text" Version="1.0.2.0" LinkUnits="False"/> ! <File FileName="..\run\Jedi_System_AssemblyInfo.pas" ContainerId="" ModuleName="Jedi_System_AssemblyInfo"/> ! <File FileName="..\run\Jedi.System.Resources.pas" ContainerId="" ModuleName="Jedi.System.Resources"/> <File FileName="..\run\Jedi.System.CommandLine.pas" ContainerId="" ModuleName="Jedi.System.CommandLine"/> ! <File FileName="..\run\Jedi.Math.Evaluation.Base.pas" ContainerId="" ModuleName="Jedi.Math.Evaluation.Base"/> ! <File FileName="..\run\Jedi.Math.Evaluation.BinaryNodes.pas" ContainerId="" ModuleName="Jedi.Math.Evaluation.BinaryNodes"/> ! <File FileName="..\run\Jedi.Math.Evaluation.CompilingProcessor.pas" ContainerId="" ModuleName="Jedi.Math.Evaluation.CompilingProcessor"/> ! <File FileName="..\run\Jedi.Math.Evaluation.CompilingProcessor.NodeBase.pas" ContainerId="" ModuleName="Jedi.Math.Evaluation.CompilingProcessor.NodeBase"/> ! <File FileName="..\run\Jedi.Math.Evaluation.EvalProcessor.pas" ContainerId="" ModuleName="Jedi.Math.Evaluation.EvalProcessor"/> ! <File FileName="..\run\Jedi.Math.Evaluation.Namespaces.Generic.pas" ContainerId="" ModuleName="Jedi.Math.Evaluation.Namespaces.Generic"/> ! <File FileName="..\run\Jedi.Math.Evaluation.TenaryNodes.pas" ContainerId="" ModuleName="Jedi.Math.Evaluation.TenaryNodes"/> ! <File FileName="..\run\Jedi.Math.Evaluation.Tokenization.pas" ContainerId="" ModuleName="Jedi.Math.Evaluation.Tokenization"/> ! <File FileName="..\run\Jedi.Math.Evaluation.Tokens.pas" ContainerId="" ModuleName="Jedi.Math.Evaluation.Tokens"/> ! <File FileName="..\run\Jedi.Math.Evaluation.UnaryNodes.pas" ContainerId="" ModuleName="Jedi.Math.Evaluation.UnaryNodes"/> ! <File FileName="..\run\Jedi.Math.Evaluation.ValueNodes.pas" ContainerId="" ModuleName="Jedi.Math.Evaluation.ValueNodes"/> </FileList> </DelphiDotNet.Personality> Index: Jedi.Drawing.bdsproj =================================================================== RCS file: /cvsroot/jedidotnet/main/assemblies/Jedi.Drawing.bdsproj,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Jedi.Drawing.bdsproj 22 Jan 2005 15:27:54 -0000 1.6 --- Jedi.Drawing.bdsproj 24 Dec 2005 12:26:37 -0000 1.7 *************** *** 171,178 **** </VersionInfoKeys> <FileList> ! <File FileName="Borland.Delphi.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Borland.Delphi" AssemblyName="Borland.Delphi" Version="9.0.1761.24408" LinkUnits="False"/> <File FileName="$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.Drawing.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="System.Drawing" AssemblyName="System.Drawing" Version="1.0.5000.0" LinkUnits="False"/> ! <File FileName="..\bin\Jedi.System.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Jedi.System" AssemblyName="Jedi.System" Version="1.0.0.0" LinkUnits="False"/> <File FileName="..\run\Jedi.Drawing.Colors.pas" ContainerId="" ModuleName="Jedi.Drawing.Colors"/> </FileList> </DelphiDotNet.Personality> --- 171,179 ---- </VersionInfoKeys> <FileList> ! <File FileName="Borland.Delphi.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Borland.Delphi" AssemblyName="Borland.Delphi" Version="9.0.1882.30496" LinkUnits="False"/> <File FileName="$(SystemRoot)\microsoft.net\framework\v1.1.4322\System.Drawing.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="System.Drawing" AssemblyName="System.Drawing" Version="1.0.5000.0" LinkUnits="False"/> ! <File FileName="..\bin\Jedi.Core.dll" ContainerId="DelphiDotNetAssemblyCompiler" ModuleName="Jedi.Core" AssemblyName="Jedi.Core" Version="1.0.2.0" LinkUnits="False"/> <File FileName="..\run\Jedi.Drawing.Colors.pas" ContainerId="" ModuleName="Jedi.Drawing.Colors"/> + <File FileName="..\run\Jedi_Drawing_AssemblyInfo.pas" ContainerId="" ModuleName="Jedi_Drawing_AssemblyInfo"/> </FileList> </DelphiDotNet.Personality> --- NEW FILE: Jedi.Core.dpk --- package Jedi.Core; {$ALIGN 0} {$ASSERTIONS ON} {$BOOLEVAL OFF} {$DEBUGINFO ON} {$EXTENDEDSYNTAX ON} {$IMPORTEDDATA ON} {$IOCHECKS ON} {$LOCALSYMBOLS ON} {$LONGSTRINGS ON} {$OPENSTRINGS ON} {$OPTIMIZATION ON} {$OVERFLOWCHECKS OFF} {$RANGECHECKS OFF} {$REFERENCEINFO ON} {$SAFEDIVIDE OFF} {$STACKFRAMES OFF} {$TYPEDADDRESS OFF} {$VARSTRINGCHECKS ON} {$WRITEABLECONST OFF} {$MINENUMSIZE 1} {$IMAGEBASE $400000} {$IMPLICITBUILD OFF} {$R '..\resources\Jedi.Core.resources' '..\resources\Jedi.Core.resx'} requires Borland.Delphi, System, System.Data, System.XML; contains Jedi_Core_AssemblyInfo in '..\run\Jedi_Core_AssemblyInfo.pas', Jedi.Collections.InlineEditable in '..\run\Jedi.Collections.InlineEditable.pas', Jedi.System.Attributes in '..\run\Jedi.System.Attributes.pas', Jedi.System.FrameworkResources in '..\run\Jedi.System.FrameworkResources.pas', Jedi.System.SourceVersioning in '..\run\Jedi.System.SourceVersioning.pas', Jedi.System.Strings in '..\run\Jedi.System.Strings.pas', Jedi.Timers.Schedules in '..\run\Jedi.Timers.Schedules.pas', Jedi.Core.Resources in '..\run\Jedi.Core.Resources.pas', Jedi.Timers.EventScheduler in '..\run\Jedi.Timers.EventScheduler.pas'; end. |
Update of /cvsroot/jedidotnet/main/run In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17540/main/run Modified Files: Jedi.Collections.InlineEditable.pas Jedi.Drawing.Colors.pas Jedi.IO.FileOfRec.pas Jedi.IO.IniFiles.pas Jedi.IO.Paths.pas Jedi.Math.Evaluation.Base.pas Jedi.System.Attributes.pas Jedi.System.CommandLine.pas Jedi.System.FrameworkResources.pas Jedi.System.SourceVersioning.pas Jedi.System.Strings.pas Jedi.Text.Tokenization.InputBase.pas Jedi.Text.Tokenization.ProviderBase.pas Jedi.Text.Tokenization.TokenBase.pas Jedi.Text.Tokenization.TokenizerBase.pas Jedi.Timers.EventScheduler.pas Jedi.Timers.Schedules.pas Added Files: Jedi.Core.Resources.pas Jedi.IO.Resources.pas Jedi.System.Resources.pas Jedi.Text.Resources.pas Jedi_Core_AssemblyInfo.pas Jedi_Drawing_AssemblyInfo.pas Jedi_IO_AssemblyInfo.pas Jedi_System_AssemblyInfo.pas Jedi_Text_AssemblyInfo.pas common_asm_attribs.inc Removed Files: Jedi.Math.Resources.pas Log Message: * Added resource classes per assembly * Added generic assembly info include file and an assembly info file per assembly * Adjusted sources to new resource files --- NEW FILE: Jedi_Core_AssemblyInfo.pas --- unit Jedi_Core_AssemblyInfo; interface uses System.Reflection, System.Runtime.InteropServices; [assembly: AssemblyTitle('Jedi.Core')] [assembly: AssemblyDescription('JEDI.NET Core Assembly')] {$I common_asm_attribs.inc} //[assembly: Guid('')] //[assembly: TypeLibVersion(1, 0)] implementation end. Index: Jedi.System.FrameworkResources.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.System.FrameworkResources.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Jedi.System.FrameworkResources.pas 14 Mar 2005 13:30:13 -0000 1.2 --- Jedi.System.FrameworkResources.pas 24 Dec 2005 12:25:13 -0000 1.3 *************** *** 26,30 **** interface ! {$REGION 'interface uses'} uses Jedi.System.SourceVersioning, --- 26,30 ---- interface ! {$REGION 'uses'} uses Jedi.System.SourceVersioning, *************** *** 40,44 **** {$REGION 'mscorlib resources'} type ! [JediSourceInfo('$Header$')] MscorlibResources = class sealed (&Object) {$REGION 'Constructors'} --- 40,47 ---- {$REGION 'mscorlib resources'} type ! [JediSourceInfo( ! '$Source$', ! '$Revision$', ! '$Date$')] MscorlibResources = class sealed (&Object) {$REGION 'Constructors'} *************** *** 52,56 **** class var rm: ResourceManager; {$ENDREGION} ! {$REGION 'String retrieval'} public class function GetResourceString(id: string): string; overload; static; --- 55,59 ---- class var rm: ResourceManager; {$ENDREGION} ! {$REGION 'Basic string retrieval'} public class function GetResourceString(id: string): string; overload; static; *************** *** 66,69 **** --- 69,159 ---- class function GetResourceString(culture: CultureInfo; id: string; args: ObjectArray): string; overload; static; {$ENDREGION} + {$REGION 'Exceptions: Argument-related exceptions'} + public + class function ArgumentMustBeNonNegative(arg: string): string; overload; static; + class function ArgumentMustBeNonNegative(culture: CultureInfo; arg: string): string; overload; static; + {$ENDREGION} + {$REGION 'Exceptions: Invalid operations'} + public + class function IComparerFailed: string; overload; static; + class function IComparerFailed(culture: CultureInfo): string; overload; static; + {$ENDREGION} + {$REGION 'Enumerators related resources'} + public + type + [JediSourceInfo( + '$Source$', + '$Revision$', + '$Date$')] + Enumerator = class abstract (&Object) + {$REGION 'Hidden constructor'} + strict protected + constructor Create; + {$ENDREGION} + {$REGION 'Exception messages'} + public + class function AlreadyEnded: string; overload; static; + class function AlreadyEnded(culture: CultureInfo): string; overload; static; + class function NotStarted: string; overload; static; + class function NotStarted(culture: CultureInfo): string; overload; static; + class function NoCurrentElement: string; overload; static; + class function NoCurrentElement(culture: CultureInfo): string; overload; static; + class function RemoveNotSupported: string; overload; static; + class function RemoveNotSupported(culture: CultureInfo): string; overload; static; + class function VersionFailed: string; overload; static; + class function VersionFailed(culture: CultureInfo): string; overload; static; + {$ENDREGION} + end; + {$ENDREGION} + {$REGION 'Array related resources'} + public + type + [JediSourceInfo( + '$Source$', + '$Revision$', + '$Date$')] + Arrays = class abstract (&Object) + {$REGION 'Hidden constructor'} + strict protected + constructor Create; + {$ENDREGION} + {$REGION 'Exceptions'} + public + class function ArrayPlusOffsetTooSmall: string; overload; static; + class function ArrayPlusOffsetTooSmall(culture: CultureInfo): string; overload; static; + class function IndexOutOfRange: string; overload; static; + class function IndexOutOfRange(culture: CultureInfo): string; overload; static; + class function MultiDimensionalNotAllowed: string; overload; static; + class function MultiDimensionalNotAllowed(culture: CultureInfo): string; overload; static; + {$ENDREGION} + end; + {$ENDREGION} + {$REGION 'Collections related resources'} + public + type + [JediSourceInfo( + '$Source$', + '$Revision$', + '$Date$')] + Collections = class abstract (&Object) + {$REGION 'Hidden constructor'} + strict protected + constructor Create; + {$ENDREGION} + {$REGION 'Common strings'} + public + // Note: this one will be retrieved from the System assembly resource + class function CollectionConverterText: string; overload; static; + class function CollectionConverterText(culture: CultureInfo): string; overload; static; + {$ENDREGION} + {$REGION 'Exceptions'} + public + class function IsFixedSize: string; overload; static; + class function IsFixedSize(culture: CultureInfo): string; overload; static; + class function IsReadOnly: string; overload; static; + class function IsReadOnly(culture: CultureInfo): string; overload; static; + {$ENDREGION} + end; + {$ENDREGION} end; {$ENDREGION} *************** *** 71,75 **** {$REGION 'System resources'} type ! [JediSourceInfo('$Header$')] SystemResources = class sealed (&Object) {$REGION 'Constructors'} --- 161,168 ---- {$REGION 'System resources'} type ! [JediSourceInfo( ! '$Source$', ! '$Revision$', ! '$Date$')] SystemResources = class sealed (&Object) {$REGION 'Constructors'} *************** *** 113,116 **** --- 206,219 ---- end; + class function MscorlibResources.ArgumentMustBeNonNegative(arg: string): string; + begin + Result := ArgumentMustBeNonNegative(CultureInfo.CurrentCulture, arg); + end; + + class function MscorlibResources.ArgumentMustBeNonNegative(culture: CultureInfo; arg: string): string; + begin + Result := GetResourceString(culture, 'ArgumentOutOfRange_MustBeNonNegNum', arg); + end; + class function MscorlibResources.GetResourceString(id: string): string; begin *************** *** 162,165 **** --- 265,409 ---- Result := System.String.Format(GetResourceString(culture, id), args); end; + + class function MscorlibResources.IComparerFailed: string; + begin + Result := IComparerFailed(CultureInfo.CurrentCulture); + end; + + class function MscorlibResources.IComparerFailed(culture: CultureInfo): string; + begin + Result := GetResourceString(culture, 'InvalidOperation_IComparerFailed'); + end; + {$ENDREGION} + + {$REGION 'MscorlibResources.Arrays'} + constructor MscorlibResources.Arrays.Create; + begin + inherited Create; + end; + + class function MscorlibResources.Arrays.ArrayPlusOffsetTooSmall: string; + begin + Result := ArrayPlusOffsetTooSmall(CultureInfo.CurrentCulture); + end; + + class function MscorlibResources.Arrays.ArrayPlusOffsetTooSmall(culture: CultureInfo): string; + begin + Result := MscorlibResources.GetResourceString(culture, 'Arg_ArrayPlusOffTooSmall'); + end; + + class function MscorlibResources.Arrays.IndexOutOfRange: string; + begin + Result := IndexOutOfRange(CultureInfo.CurrentCulture); + end; + + class function MscorlibResources.Arrays.IndexOutOfRange(culture: CultureInfo): string; + begin + Result := MscorlibResources.GetResourceString(culture, 'Arg_IndexOutOfRangeException'); + end; + + class function MscorlibResources.Arrays.MultiDimensionalNotAllowed: string; + begin + Result := MultiDimensionalNotAllowed(CultureInfo.CurrentCulture); + end; + + class function MscorlibResources.Arrays.MultiDimensionalNotAllowed(culture: CultureInfo): string; + begin + Result := MscorlibResources.GetResourceString(culture, 'Arg_RankMultiDimNotSupported'); + end; + {$ENDREGION} + + {$REGION 'MscorlibResources.Collections'} + constructor MscorlibResources.Collections.Create; + begin + inherited Create; + end; + + class function MscorlibResources.Collections.CollectionConverterText: string; + begin + Result := CollectionConverterText(CultureInfo.CurrentCulture); + end; + + class function MscorlibResources.Collections.CollectionConverterText(culture: CultureInfo): string; + begin + Result := SystemResources.GetResourceString(culture, 'CollectionConverterText'); + end; + + class function MscorlibResources.Collections.IsFixedSize: string; + begin + Result := IsFixedSize(CultureInfo.CurrentCulture); + end; + + class function MscorlibResources.Collections.IsFixedSize(culture: CultureInfo): string; + begin + Result := MscorlibResources.GetResourceString(culture, 'NotSupported_FixedSizeCollection'); + end; + + class function MscorlibResources.Collections.IsReadOnly: string; + begin + Result := IsReadOnly(CultureInfo.CurrentCulture); + end; + + class function MscorlibResources.Collections.IsReadOnly(culture: CultureInfo): string; + begin + Result := MscorlibResources.GetResourceString(culture, 'NotSupported_ReadOnlyCollection'); + end; + {$ENDREGION} + + {$REGION 'MscorlibResources.Enumerator'} + constructor MscorlibResources.Enumerator.Create; + begin + inherited Create; + end; + + class function MscorlibResources.Enumerator.AlreadyEnded: string; + begin + Result := AlreadyEnded(CultureInfo.CurrentCulture); + end; + + class function MscorlibResources.Enumerator.AlreadyEnded(culture: CultureInfo): string; + begin + Result := MscorlibResources.GetResourceString(culture, 'InvalidOperation_EnumEnded'); + end; + + class function MscorlibResources.Enumerator.NotStarted: string; + begin + Result := NotStarted(CultureInfo.CurrentCulture); + end; + + class function MscorlibResources.Enumerator.NotStarted(culture: CultureInfo): string; + begin + Result := MscorlibResources.GetResourceString(culture, 'InvalidOperation_EnumNotStarted'); + end; + + class function MscorlibResources.Enumerator.NoCurrentElement: string; + begin + Result := NoCurrentElement(CultureInfo.CurrentCulture); + end; + + class function MscorlibResources.Enumerator.NoCurrentElement(culture: CultureInfo): string; + begin + Result := MscorlibResources.GetResourceString(culture, 'InvalidOperation_EnumOpCantHappen'); + end; + + class function MscorlibResources.Enumerator.RemoveNotSupported: string; + begin + Result := RemoveNotSupported(CultureInfo.CurrentCulture); + end; + + class function MscorlibResources.Enumerator.RemoveNotSupported(culture: CultureInfo): string; + begin + Result := MscorlibResources.GetResourceString(culture, 'NotSupported_RemoveOnEnum'); + end; + + class function MscorlibResources.Enumerator.VersionFailed: string; + begin + Result := VersionFailed(CultureInfo.CurrentCulture); + end; + + class function MscorlibResources.Enumerator.VersionFailed(culture: CultureInfo): string; + begin + Result := MscorlibResources.GetResourceString(culture, 'InvalidOperation_EnumFailedVersion'); + end; {$ENDREGION} --- NEW FILE: Jedi.System.Resources.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.System.Resources.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet Known Issues: ---------------------------------------------------------------------------------------------------} // $Id: Jedi.System.Resources.pas,v 1.1 2005/12/24 12:25:13 jedi_mbe Exp $ unit Jedi.System.Resources; interface {$REGION 'uses'} uses Jedi.System.SourceVersioning, Jedi.Text.Tokenization.TokenBase, System.Globalization, System.Resources, System.Reflection; {$ENDREGION} {$REGION 'Helper types'} type ObjectArray = array of &Object; {$ENDREGION} {$REGION 'Jedi.System resources'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.System.Resources.pas,v $', '$Revision: 1.1 $', '$Date: 2005/12/24 12:25:13 $')] Resources = class abstract (&Object) {$REGION 'Constructors'} strict private class constructor Create; strict protected constructor Create; {$ENDREGION} {$REGION 'Data'} strict private class var rm: ResourceManager; {$ENDREGION} {$REGION 'Basic string retrieval'} public class function GetResourceString(id: string): string; overload; static; class function GetResourceString(culture: CultureInfo; id: string): string; overload; static; class function GetResourceString(id: string; arg0: &Object): string; overload; static; class function GetResourceString(culture: CultureInfo; id: string; arg0: &Object): string; overload; static; class function GetResourceString(id: string; arg0, arg1: &Object): string; overload; static; class function GetResourceString(culture: CultureInfo; id: string; arg0, arg1: &Object): string; overload; static; class function GetResourceString(id: string; arg0, arg1, arg2: &Object): string; overload; static; class function GetResourceString(culture: CultureInfo; id: string; arg0, arg1, arg2: &Object): string; overload; static; class function GetResourceString(id: string; args: ObjectArray): string; overload; static; class function GetResourceString(culture: CultureInfo; id: string; args: ObjectArray): string; overload; static; {$ENDREGION} {$REGION 'Commandline processing related resources'} public type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.System.Resources.pas,v $', '$Revision: 1.1 $', '$Date: 2005/12/24 12:25:13 $')] CommandLine = class abstract (&Object) {$REGION 'Hidden constructor'} strict protected constructor Create; {$ENDREGION} {$REGION 'Helper methods'} strict protected class function FullMemberName(mi: MemberInfo): string; static; {$ENDREGION} {$REGION 'Parser exception messages'} public class function DuplicateSwitch(switch: string; newMember, existingMember: MemberInfo): string; overload; static; class function DuplicateSwitch(switch: string; newMember, existingMember: MemberInfo; culture: CultureInfo): string; overload; static; class function FilenameRequired: string; overload; static; class function FilenameRequired(culture: CultureInfo): string; overload; static; class function InvalidHandlerAncestor: string; overload; static; class function InvalidHandlerAncestor(culture: CultureInfo): string; overload; static; class function InvalidValue(switch, value: string): string; overload; static; class function InvalidValue(switch, value: string; culture: CultureInfo): string; overload; static; class function InvalidHandlerCtor(handlerType: &Type): string; overload; static; class function InvalidHandlerCtor(handlerType: &Type; culture: CultureInfo): string; overload; static; class function MethodSignatureError: string; overload; static; class function MethodSignatureError(culture: CultureInfo): string; overload; static; class function NoHandlerFor(propertyType: &Type): string; overload; static; class function NoHandlerFor(propertyType: &Type; culture: CultureInfo): string; overload; static; class function SwitchMatchIsEmpty: string; overload; static; class function SwitchMatchIsEmpty(culture: CultureInfo): string; overload; static; class function UnknownSwitch(switch: string): string; overload; static; class function UnknownSwitch(switch: string; culture: CultureInfo): string; overload; static; class function ValueRequired(switch: string): string; overload; static; class function ValueRequired(switch: string; culture: CultureInfo): string; overload; static; {$ENDREGION} end; {$ENDREGION} {$REGION 'Math related resources'} public type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.System.Resources.pas,v $', '$Revision: 1.1 $', '$Date: 2005/12/24 12:25:13 $')] Math = class abstract (&Object) {$REGION 'Hidden constructor'} strict protected constructor Create; {$ENDREGION} {$REGION 'Helper methods'} strict protected class function ParserExpectedMsg(culture: CultureInfo; currentToken: Token; expectedId: string; args: ObjectArray): string; static; {$ENDREGION} {$REGION 'Parser exception messages'} public class function ParserExpectedClosingParenthesis(currentToken, openParenthesis: Token): string; overload; static; class function ParserExpectedClosingParenthesis(culture: CultureInfo; currentToken, openParenthesis: Token): string; overload; static; class function ParserExpectedConditionalValueSeparator(currentToken: Token): string; overload; static; class function ParserExpectedConditionalValueSeparator(culture: CultureInfo; currentToken: Token): string; overload; static; class function ParserExpectedArgumentSeparator(currentToken: Token): string; overload; static; class function ParserExpectedArgumentSeparator(culture: CultureInfo; currentToken: Token): string; overload; static; class function ParserExpectedPrimary(currentToken: Token): string; overload; static; class function ParserExpectedPrimary(culture: CultureInfo; currentToken: Token): string; overload; static; class function ParserUnknownIdentifier(currentToken: Token): string; overload; static; class function ParserUnknownIdentifier(culture: CultureInfo; currentToken: Token): string; overload; static; {$ENDREGION} end; {$ENDREGION} end; {$ENDREGION} implementation {$AUTOBOX ON} uses Jedi.System.CommandLine; {$REGION 'Resources'} class constructor Resources.Create; begin rm := ResourceManager.Create('Jedi.System', TypeOf(Resources).Assembly); end; constructor Resources.Create; begin inherited Create; end; class function Resources.GetResourceString(id: string): string; begin Result := GetResourceString(CultureInfo.CurrentCulture, id); end; class function Resources.GetResourceString(culture: CultureInfo; id: string): string; begin Result := rm.GetString(id, culture); end; class function Resources.GetResourceString(id: string; arg0: &Object): string; begin Result := System.String.Format(GetResourceString(CultureInfo.CurrentCulture, id), arg0); end; class function Resources.GetResourceString(culture: CultureInfo; id: string; arg0: &Object): string; begin Result := System.String.Format(GetResourceString(culture, id), arg0); end; class function Resources.GetResourceString(id: string; arg0, arg1: &Object): string; begin Result := System.String.Format(GetResourceString(CultureInfo.CurrentCulture, id), arg0, arg1); end; class function Resources.GetResourceString(culture: CultureInfo; id: string; arg0, arg1: &Object): string; begin Result := System.String.Format(GetResourceString(culture, id), arg0, arg1); end; class function Resources.GetResourceString(id: string; arg0, arg1, arg2: &Object): string; begin Result := System.String.Format(GetResourceString(CultureInfo.CurrentCulture, id), arg0, arg1, arg2); end; class function Resources.GetResourceString(culture: CultureInfo; id: string; arg0, arg1, arg2: &Object): string; begin Result := System.String.Format(GetResourceString(culture, id), arg0, arg1, arg2); end; class function Resources.GetResourceString(id: string; args: array of &Object): string; begin Result := System.String.Format(GetResourceString(CultureInfo.CurrentCulture, id), args); end; class function Resources.GetResourceString(culture: CultureInfo; id: string; args: array of &Object): string; begin Result := System.String.Format(GetResourceString(culture, id), args); end; {$ENDREGION} {$REGION 'Resources.CommandLine'} constructor Resources.CommandLine.Create; begin inherited Create; end; class function Resources.CommandLine.DuplicateSwitch(switch: string; newMember, existingMember: MemberInfo): string; begin Result := DuplicateSwitch(switch, newMember, existingMember, CultureInfo.CurrentCulture); end; class function Resources.CommandLine.DuplicateSwitch(switch: string; newMember, existingMember: MemberInfo; culture: CultureInfo): string; begin Result := Resources.GetResourceString(culture, 'cmd_DuplicateSwitch', switch, FullMemberName(newMember), FullMemberName(existingMember)); end; class function Resources.CommandLine.FilenameRequired: string; begin Result := FilenameRequired(CultureInfo.CurrentCulture); end; class function Resources.CommandLine.FilenameRequired(culture: CultureInfo): string; begin Result := Resources.GetResourceString(culture, 'cmd_ResponseFileNeedsFilename'); end; class function Resources.CommandLine.FullMemberName(mi: MemberInfo): string; begin Result := System.String.Format('{0}.{1}', mi.ReflectedType.FullName, mi.Name); end; class function Resources.CommandLine.InvalidHandlerAncestor: string; begin Result := InvalidhandlerAncestor(CultureInfo.CurrentCulture); end; class function Resources.CommandLine.InvalidHandlerAncestor(culture: CultureInfo): string; begin Result := Resources.GetResourceString(culture, 'cmd_InvalidHandlerAncestor', TypeOf( Jedi.System.CommandLine.CommandLine.Argument).FullName); end; class function Resources.CommandLine.InvalidValue(switch, value: string): string; begin Result := InvalidValue(switch, value, CultureInfo.CurrentCulture); end; class function Resources.CommandLine.InvalidValue(switch, value: string; culture: CultureInfo): string; begin Result := Resources.GetResourceString(culture, 'cmd_InvalidValueFor', switch, value); end; class function Resources.CommandLine.InvalidHandlerCtor(handlerType: &Type): string; begin Result := InvalidHandlerCtor(handlerType, CultureInfo.CurrentCulture); end; class function Resources.CommandLine.InvalidHandlerCtor(handlerType: &Type; culture: CultureInfo): string; begin Result := Resources.GetResourceString(culture, 'cmd_HandlerInvalidCtor', handlerType); end; class function Resources.CommandLine.MethodSignatureError: string; begin Result := MethodSignatureError(CultureInfo.CurrentCulture); end; class function Resources.CommandLine.MethodSignatureError(culture: CultureInfo): string; begin Result := Resources.GetResourceString(culture, 'cmd_MethSigError'); end; class function Resources.CommandLine.NoHandlerFor(propertyType: &Type): string; begin Result := NoHandlerFor(propertyType, CultureInfo.CurrentCulture); end; class function Resources.CommandLine.NoHandlerFor(propertyType: &Type; culture: CultureInfo): string; begin Result := Resources.GetResourceString(culture, 'cmd_NoHandlerForType', propertyType.FullName); end; class function Resources.CommandLine.SwitchMatchIsEmpty: string; begin Result := SwitchMatchIsEmpty(CultureInfo.CurrentCulture); end; class function Resources.CommandLine.SwitchMatchIsEmpty(culture: CultureInfo): string; begin Result := Resources.GetResourceString(culture, 'cmd_MatchIsEmpty'); end; class function Resources.CommandLine.UnknownSwitch(switch: string): string; begin Result := UnknownSwitch(switch, CultureInfo.CurrentCulture); end; class function Resources.CommandLine.UnknownSwitch(switch: string; culture: CultureInfo): string; begin Result := Resources.GetResourceString(culture, 'cmd_UnknownSwitch', switch); end; class function Resources.CommandLine.ValueRequired(switch: string): string; begin Result := ValueRequired(switch, CultureInfo.CurrentCulture); end; class function Resources.CommandLine.ValueRequired(switch: string; culture: CultureInfo): string; begin Result := Resources.GetResourceString(culture, 'cmd_ValueRequiredFor', switch); end; {$ENDREGION} {$REGION 'Resources.Math'} constructor Resources.Math.Create; begin inherited Create; end; class function Resources.Math.ParserExpectedClosingParenthesis(currentToken, openParenthesis: Token): string; begin Result := ParserExpectedClosingParenthesis(CultureInfo.CurrentCulture, currentToken, openParenthesis); end; class function Resources.Math.ParserExpectedClosingParenthesis(culture: CultureInfo; currentToken, openParenthesis: Token): string; begin Result := GetResourceString(culture, 'ParserExpBase', GetResourceString(culture, 'ParserExpClosePar', openParenthesis.Line, openParenthesis.Column), currentToken.Line, currentToken.Column) end; class function Resources.Math.ParserExpectedConditionalValueSeparator(currentToken: Token): string; begin Result := ParserExpectedConditionalValueSeparator(CultureInfo.CurrentCulture, currentToken); end; class function Resources.Math.ParserExpectedConditionalValueSeparator(culture: CultureInfo; currentToken: Token): string; begin Result := ParserExpectedMsg(culture, currentToken, 'ParserExpCondValueSep', nil); end; class function Resources.Math.ParserExpectedArgumentSeparator(currentToken: Token): string; begin Result := ParserExpectedArgumentSeparator(CultureInfo.CurrentCulture, currentToken); end; class function Resources.Math.ParserExpectedArgumentSeparator(culture: CultureInfo; currentToken: Token): string; begin Result := ParserExpectedMsg(culture, currentToken, 'parserExpArgSep', nil); end; class function Resources.Math.ParserExpectedMsg(culture: CultureInfo; currentToken: Token; expectedId: string; args: ObjectArray): string; begin if currentToken <> nil then Result := GetResourceString(culture, 'ParserExpBase', GetResourceString(culture, expectedId, args), currentToken.Line, currentToken.Column) else Result := GetResourceString(culture, 'ParserExpBase', GetResourceString(culture, expectedId, args), '?', '?'); end; class function Resources.Math.ParserExpectedPrimary(currentToken: Token): string; begin Result := ParserExpectedPrimary(CultureInfo.CurrentCulture, currentToken); end; class function Resources.Math.ParserExpectedPrimary(culture: CultureInfo; currentToken: Token): string; begin Result := ParserExpectedMsg(culture, currentToken, 'ParserExpPrimary', nil); end; class function Resources.Math.ParserUnknownIdentifier(currentToken: Token): string; begin Result := ParserUnknownIdentifier(CultureInfo.InvariantCulture, currentToken); end; class function Resources.Math.ParserUnknownIdentifier(culture: CultureInfo; currentToken: Token): string; begin Result := GetResourceString(culture, 'ParserUnknownIdent', currentToken.Literal, currentToken.Line, currentToken.Column); end; {$ENDREGION} end. Index: Jedi.Math.Evaluation.Base.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.Base.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Jedi.Math.Evaluation.Base.pas 25 Sep 2005 11:28:07 -0000 1.2 --- Jedi.Math.Evaluation.Base.pas 24 Dec 2005 12:25:13 -0000 1.3 *************** *** 413,417 **** Jedi.Math.Evaluation.Tokenization, Jedi.Math.Evaluation.Tokens, ! Jedi.Math.Resources; {$ENDREGION} --- 413,417 ---- Jedi.Math.Evaluation.Tokenization, Jedi.Math.Evaluation.Tokens, ! Jedi.System.Resources; {$ENDREGION} *************** *** 565,574 **** begin if (al.Count = MaxArgs) and not (parser.Tokens.Current is CloseParenthesisToken) then ! raise ParserException.Create(Resources.ParserExpectedClosingParenthesis(parser.Tokens.Current, openParToken)); if al.Count > 0 then begin if not (parser.Tokens.Current is CommaToken) then ! raise ParserException.Create(Resources.ParserExpectedArgumentSeparator(parser.Tokens.Current)); parser.Tokens.Next; end; --- 565,574 ---- begin if (al.Count = MaxArgs) and not (parser.Tokens.Current is CloseParenthesisToken) then ! raise ParserException.Create(Resources.Math.ParserExpectedClosingParenthesis(parser.Tokens.Current, openParToken)); if al.Count > 0 then begin if not (parser.Tokens.Current is CommaToken) then ! raise ParserException.Create(Resources.Math.ParserExpectedArgumentSeparator(parser.Tokens.Current)); parser.Tokens.Next; end; *************** *** 576,580 **** end; if not (parser.Tokens.Current is CloseParenthesisToken) then ! raise ParserException.Create(Resources.ParserExpectedClosingParenthesis(parser.Tokens.Current, openParToken)); end; end; --- 576,581 ---- end; if not (parser.Tokens.Current is CloseParenthesisToken) then ! raise ParserException.Create( ! Resources.Math.ParserExpectedClosingParenthesis(parser.Tokens.Current, openParToken)); end; end; *************** *** 786,790 **** Result := Processor.ProcessConditionalTrueValue(Result, ProcessConditional); if not tokens.Next or (Tokens.Current is ConditionValueSeparatorToken) then ! raise ParserException.Create(Resources.ParserExpectedConditionalValueSeparator(Tokens.Current)); EndTypes := oldEndTokens; Skipping := oldSkipping or skipFalse; --- 787,791 ---- Result := Processor.ProcessConditionalTrueValue(Result, ProcessConditional); if not tokens.Next or (Tokens.Current is ConditionValueSeparatorToken) then ! raise ParserException.Create(Resources.Math.ParserExpectedConditionalValueSeparator(Tokens.Current)); EndTypes := oldEndTokens; Skipping := oldSkipping or skipFalse; *************** *** 917,921 **** end; if not (Tokens.Current is CloseParenthesisToken) then ! raise ParserException.Create(Resources.ParserExpectedClosingParenthesis(Tokens.Current, startToken)); Tokens.Next; end --- 918,922 ---- end; if not (Tokens.Current is CloseParenthesisToken) then ! raise ParserException.Create(Resources.Math.ParserExpectedClosingParenthesis(Tokens.Current, startToken)); Tokens.Next; end *************** *** 931,935 **** sym := Namespace.Resolve(Tokens.Current.Literal); if sym = nil then ! raise ParserException.Create(resources.ParserUnknownIdentifier(Tokens.Current)); if sym is Constant then Result := Processor.LoadConstant(Constant(sym)) --- 932,936 ---- sym := Namespace.Resolve(Tokens.Current.Literal); if sym = nil then ! raise ParserException.Create(Resources.Math.ParserUnknownIdentifier(Tokens.Current)); if sym is Constant then Result := Processor.LoadConstant(Constant(sym)) *************** *** 942,946 **** end else ! raise ParserException.Create(Resources.ParserExpectedPrimary(Tokens.Current)); end; --- 943,947 ---- end else ! raise ParserException.Create(Resources.Math.ParserExpectedPrimary(Tokens.Current)); end; Index: Jedi.Collections.InlineEditable.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.Collections.InlineEditable.pas,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Jedi.Collections.InlineEditable.pas 23 Jan 2005 11:05:51 -0000 1.3 --- Jedi.Collections.InlineEditable.pas 24 Dec 2005 12:25:13 -0000 1.4 *************** *** 26,36 **** interface ! {$REGION 'interface uses'} uses Jedi.System.Attributes, Jedi.System.SourceVersioning, System.Collections, System.Collections.Specialized, System.ComponentModel, System.Drawing.Design, [...1320 lines suppressed...] end; ! function InlineDictionaryBase.GetService(serviceType: &Type): &Object; begin Result := nil; end; ! function InlineDictionaryBase.GetItemDescription(key: &Object): string; begin Result := ''; end; ! function InlineDictionaryBase.GetItemEmptyValue(key: &Object): &Object; begin Result := nil; end; ! function InlineDictionaryBase.GetItemProperty(key, value: &Object): PropertyDescriptor; begin Result := InlineCollectionUtils.CreateItemProperty(value.GetType, AttributeArray.Create(), Self, key.ToString, Index: Jedi.System.SourceVersioning.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.System.SourceVersioning.pas,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** Jedi.System.SourceVersioning.pas 14 Mar 2005 13:30:14 -0000 1.5 --- Jedi.System.SourceVersioning.pas 24 Dec 2005 12:25:13 -0000 1.6 *************** *** 26,35 **** interface ! type {$REGION 'Helper types (Delphi only)'} IntegerArray = array of Integer; {$ENDREGION} {$REGION 'Forward declarations'} Revision = record; {$ENDREGION} --- 26,43 ---- interface ! {$REGION 'uses'} ! uses ! System.Globalization, ! System.IO, ! System.Text; ! {$ENDREGION} ! {$REGION 'Helper types (Delphi only)'} + type IntegerArray = array of Integer; {$ENDREGION} {$REGION 'Forward declarations'} + type Revision = record; {$ENDREGION} *************** *** 39,46 **** AttributeTargets.Interface or AttributeTargets.Struct, &Inherited = False)] SourceInfoAttribute = class (Attribute) - {$REGION 'Constants'} - strict protected - const dateFormat = 'yyyy''/''MM''/''dd HH'':''mm'':''ss'; - {$ENDREGION} {$REGION 'Constructors'} public --- 47,50 ---- *************** *** 50,53 **** --- 54,61 ---- constructor Create(sourceFile: string; revision: Double; date: string); overload; {$ENDREGION} + {$REGION 'Constants'} + strict protected + const dateFormat = 'yyyy''/''MM''/''dd HH'':''mm'':''ss'; + {$ENDREGION} {$REGION 'Data'} strict private *************** *** 90,98 **** {$REGION 'JediSourceVersion attribute'} JediSourceInfoAttribute = class (CVSSourceInfoAttribute) - {$REGION 'Constants'} - public - const IgnoreLevel = 2; - {$ENDREGION} {$REGION 'Constructors'} public --- 98,107 ---- {$REGION 'JediSourceVersion attribute'} + [CVSSourceInfo( + '$Source$', + '$Revision$', + '$Date$', + 2)] JediSourceInfoAttribute = class (CVSSourceInfoAttribute) {$REGION 'Constructors'} public *************** *** 100,108 **** constructor Create(sourceFile, revision, date: string); overload; {$ENDREGION} end; {$ENDREGION} {$REGION 'Revision type'} ! [JediSourceInfoAttribute('$Header$')] Revision = record (IComparable) {$REGION 'Constructors'} --- 109,124 ---- constructor Create(sourceFile, revision, date: string); overload; {$ENDREGION} + {$REGION 'Constants'} + public + const IgnoreLevel = 2; + {$ENDREGION} end; {$ENDREGION} {$REGION 'Revision type'} ! [JediSourceInfo( ! '$Source$', ! '$Revision$', ! '$Date$')] Revision = record (IComparable) {$REGION 'Constructors'} *************** *** 137,143 **** class operator Implicit(const Value: Revision): string; {$ENDREGION} ! {$REGION 'Overrides'} public function Equals(obj: &Object): Boolean; override; function ToString: string; override; {$ENDREGION} --- 153,168 ---- class operator Implicit(const Value: Revision): string; {$ENDREGION} ! {$REGION 'Alternative comparisons methods'} public function Equals(obj: &Object): Boolean; override; + function IsGreaterThan(obj: &Object): Boolean; + function IsLessThan(obj: &Object): Boolean; + function IsSubBranchOf(revision: Revision): Boolean; + {$ENDREGION} + {$REGION 'Alternative conversion methods'} + public + class function FromDouble(value: Double): Revision; static; + class function FromString(value: string): Revision; static; + function ToDouble: Double; function ToString: string; override; {$ENDREGION} *************** *** 152,159 **** property Items[&index: Integer]: Integer read get_Items; default; {$ENDREGION} - {$REGION 'Additional comparisons'} - public - function IsSubBranchOf(revision: Revision): Boolean; - {$ENDREGION} end; {$ENDREGION} --- 177,180 ---- *************** *** 161,165 **** {$REGION 'SourceInfo class'} type ! [JediSourceInfoAttribute('$Header$')] SourceInfo = class (&Object) {$REGION 'Constructor'} --- 182,189 ---- {$REGION 'SourceInfo class'} type ! [JediSourceInfo( ! '$Source$', ! '$Revision$', ! '$Date$')] SourceInfo = class (&Object) {$REGION 'Constructor'} *************** *** 198,204 **** {$REGION 'implementation uses'} uses ! System.Globalization, ! System.IO, ! System.Text, Jedi.System.Strings; {$ENDREGION} --- 222,227 ---- {$REGION 'implementation uses'} uses ! Jedi.Core.Resources, ! Jedi.System.FrameworkResources, Jedi.System.Strings; {$ENDREGION} *************** *** 254,262 **** id := id.Substring(9, id.Length - 10).Trim else ! raise FormatException.Create('Not an $Id' + '$ or $Header' + '$ CVS keyword expansion.'); idx := id.ToLower.IndexOf(',v '); if idx <= 0 then ! raise FormatException.Create('file name not found in the specified id string.'); source := id.Substring(0, idx); id := id.Remove(0, idx + 3).Trim; --- 277,285 ---- id := id.Substring(9, id.Length - 10).Trim else ! raise FormatException.Create(Resources.SourceVersioning.CVSHeaderInvalid); idx := id.ToLower.IndexOf(',v '); if idx <= 0 then ! raise FormatException.Create(Resources.SourceVersioning.CVSHeaderMissingFileName); source := id.Substring(0, idx); id := id.Remove(0, idx + 3).Trim; *************** *** 264,268 **** idx := id.IndexOf(' '); if idx < 0 then ! raise FormatException.Create('revision number not found in the specified id string.'); revision := id.Substring(0, idx); id := id.Remove(0, idx + 1).Trim; --- 287,291 ---- idx := id.IndexOf(' '); if idx < 0 then ! raise FormatException.Create(Resources.SourceVersioning.CVSHeaderMissingRevision); revision := id.Substring(0, idx); id := id.Remove(0, idx + 1).Trim; *************** *** 270,277 **** idx := id.IndexOf(' '); if idx < 0 then ! raise FormatException.Create('date not found in the specified id string.'); idx := id.IndexOf(' ', idx + 1); if idx < 0 then ! raise FormatException.Create('date not found in the specified id string.'); date := DateTime.ParseExact(id.Substring(0, idx).Trim, dateFormat, DateTimeFormatInfo.InvariantInfo); end; --- 293,300 ---- idx := id.IndexOf(' '); if idx < 0 then ! raise FormatException.Create(Resources.SourceVersioning.CVSHeaderMissingDate); idx := id.IndexOf(' ', idx + 1); if idx < 0 then ! raise FormatException.Create(Resources.SourceVersioning.CVSHeaderMissingDate); date := DateTime.ParseExact(id.Substring(0, idx).Trim, dateFormat, DateTimeFormatInfo.InvariantInfo); end; *************** *** 305,309 **** begin if levels < 0 then ! raise ArgumentOutOfRangeException.Create('levels', 'Must be zero or positive.'); idx := -1; while levels > 0 do --- 328,332 ---- begin if levels < 0 then ! raise ArgumentOutOfRangeException.Create('levels', MscorlibResources.ArgumentMustBeNonNegative('levels')); idx := -1; while levels > 0 do *************** *** 312,316 **** System.IO.Path.DirectorySeparatorChar], idx + 1); if idx < 0 then ! raise ArgumentOutOfRangeException.Create('levels', 'Path does not contain that many levels.'); Dec(levels); end; --- 335,339 ---- System.IO.Path.DirectorySeparatorChar], idx + 1); if idx < 0 then ! raise ArgumentOutOfRangeException.Create('levels', Resources.SourceVersioning.TooManyPathLevels); Dec(levels); end; *************** *** 399,402 **** --- 422,435 ---- end; + class function Revision.FromDouble(value: Double): Revision; + begin + Result := Revision.Create(value); + end; + + class function Revision.FromString(value: string): Revision; + begin + Result := Revision.Create(value); + end; + function Revision.get_Count: Integer; begin *************** *** 442,445 **** --- 475,488 ---- end; + function Revision.IsGreaterThan(obj: &Object): Boolean; + begin + Result := CompareTo(obj) > 0; + end; + + function Revision.IsLessThan(obj: &Object): Boolean; + begin + Result := CompareTo(obj) < 0; + end; + function Revision.IsSubBranchOf(revision: Revision): Boolean; var *************** *** 475,478 **** --- 518,526 ---- end; + function Revision.ToDouble: Double; + begin + Result := Self; + end; + function Revision.ToString: string; var Index: Jedi.Text.Tokenization.InputBase.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.InputBase.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Jedi.Text.Tokenization.InputBase.pas 25 Sep 2005 11:27:26 -0000 1.1 --- Jedi.Text.Tokenization.InputBase.pas 24 Dec 2005 12:25:13 -0000 1.2 *************** *** 8,12 **** limitations under the License. ! The Original Code is: Jedi.Text.Tokenization.InputBase.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer --- 8,12 ---- limitations under the License. ! The Original Code is: Jedi.Text.Tokenization.InputBase.pas, released on 2005-09-25. The Initial Developer of the Original Code is Marcel Bestebroer *************** *** 44,48 **** {$REGION 'Constructors'} public ! constructor Create(tabSet: StringUtils.TabSet); {$ENDREGION} {$REGION 'Data'} --- 44,48 ---- {$REGION 'Constructors'} public ! constructor Create(tabSet: TabSet); {$ENDREGION} {$REGION 'Data'} *************** *** 54,58 **** FSavedInfos: Stack; FSequence: StringBuilder; ! FTabSet: StringUtils.TabSet; {$ENDREGION} {$REGION 'Abstract methods'} --- 54,58 ---- FSavedInfos: Stack; FSequence: StringBuilder; ! FTabSet: TabSet; {$ENDREGION} {$REGION 'Abstract methods'} *************** *** 86,95 **** property Line: Integer read FLine; property Sequence: string read get_Sequence; ! property TabSet: StringUtils.TabSet read FTabSet; {$ENDREGION} {$REGION 'TextReader-based input provider instantiation'} public class function FromReader(reader: TextReader): TokenizerInputProvider; overload; static; ! class function FromReader(reader: TextReader; tabSet: StringUtils.TabSet): TokenizerInputProvider; overload; static; {$ENDREGION} end; --- 86,95 ---- property Line: Integer read FLine; property Sequence: string read get_Sequence; ! property TabSet: TabSet read FTabSet; {$ENDREGION} {$REGION 'TextReader-based input provider instantiation'} public class function FromReader(reader: TextReader): TokenizerInputProvider; overload; static; ! class function FromReader(reader: TextReader; tabSet: TabSet): TokenizerInputProvider; overload; static; {$ENDREGION} end; *************** *** 107,111 **** {$REGION 'Constructors'} public ! constructor Create(reader: TextReader; tabSet: StringUtils.TabSet); {$ENDREGION} {$REGION 'Data'} --- 107,111 ---- {$REGION 'Constructors'} public ! constructor Create(reader: TextReader; tabSet: TabSet); {$ENDREGION} {$REGION 'Data'} *************** *** 150,154 **** {$REGION 'ReaderProvider'} ! constructor ReaderProvider.Create(reader: TextReader; tabSet: StringUtils.TabSet); begin inherited Create(tabSet); --- 150,154 ---- {$REGION 'ReaderProvider'} ! constructor ReaderProvider.Create(reader: TextReader; tabSet: TabSet); begin inherited Create(tabSet); *************** *** 192,196 **** {$REGION 'TokenizerInputProvider'} ! constructor TokenizerInputProvider.Create(tabSet: StringUtils.TabSet); begin inherited Create; --- 192,196 ---- {$REGION 'TokenizerInputProvider'} ! constructor TokenizerInputProvider.Create(tabSet: TabSet); begin inherited Create; *************** *** 210,218 **** class function TokenizerInputProvider.FromReader(reader: TextReader): TokenizerInputProvider; begin ! Result := ReaderProvider.Create(reader, StringUtils.TabSet.Create); end; ! class function TokenizerInputProvider.FromReader(reader: TextReader; ! tabSet: StringUtils.TabSet): TokenizerInputProvider; begin Result := ReaderProvider.Create(reader, tabSet); --- 210,217 ---- class function TokenizerInputProvider.FromReader(reader: TextReader): TokenizerInputProvider; begin ! Result := ReaderProvider.Create(reader, Jedi.System.Strings.TabSet.Create); end; ! class function TokenizerInputProvider.FromReader(reader: TextReader; tabSet: TabSet): TokenizerInputProvider; begin Result := ReaderProvider.Create(reader, tabSet); --- NEW FILE: Jedi.IO.Resources.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.IO.Resources.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet Known Issues: ---------------------------------------------------------------------------------------------------} // $Id: Jedi.IO.Resources.pas,v 1.1 2005/12/24 12:25:13 jedi_mbe Exp $ unit Jedi.IO.Resources; interface {$REGION 'uses'} uses Jedi.System.SourceVersioning, Jedi.Timers.Schedules, System.Globalization, System.Resources; {$ENDREGION} {$REGION 'Helper types'} type ObjectArray = array of &Object; {$ENDREGION} {$REGION 'Jedi.IO resources'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.IO.Resources.pas,v $', '$Revision: 1.1 $', '$Date: 2005/12/24 12:25:13 $')] Resources = class abstract (&Object) {$REGION 'Constructors'} strict private class constructor Create; strict protected constructor Create; {$ENDREGION} {$REGION 'Data'} strict private class var rm: ResourceManager; {$ENDREGION} {$REGION 'Basic string retrieval'} public class function GetResourceString(id: string): string; overload; static; class function GetResourceString(culture: CultureInfo; id: string): string; overload; static; class function GetResourceString(id: string; arg0: &Object): string; overload; static; class function GetResourceString(culture: CultureInfo; id: string; arg0: &Object): string; overload; static; class function GetResourceString(id: string; arg0, arg1: &Object): string; overload; static; class function GetResourceString(culture: CultureInfo; id: string; arg0, arg1: &Object): string; overload; static; class function GetResourceString(id: string; arg0, arg1, arg2: &Object): string; overload; static; class function GetResourceString(culture: CultureInfo; id: string; arg0, arg1, arg2: &Object): string; overload; static; class function GetResourceString(id: string; args: ObjectArray): string; overload; static; class function GetResourceString(culture: CultureInfo; id: string; args: ObjectArray): string; overload; static; {$ENDREGION} {$REGION 'IniFiles related resources'} public type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.IO.Resources.pas,v $', '$Revision: 1.1 $', '$Date: 2005/12/24 12:25:13 $')] IniFiles = class abstract (&Object) {$REGION 'Hidden constructor'} strict protected constructor Create; {$ENDREGION} {$REGION 'Internal base messages'} strict protected class function ReadErrorBase(culture: CultureInfo; reason: string): string; static; {$ENDREGION} {$REGION 'Exception messages'} public class function ReadError_NoSuchKey(key: string): string; overload; static; class function ReadError_NoSuchKey(culture: CultureInfo; key: string): string; overload; static; class function ReadError_NoSuchSectionAndKey(section, key: string): string; overload; static; class function ReadError_NoSuchSectionAndKey(culture: CultureInfo; section, key: string): string; overload; static; {$ENDREGION} end; {$ENDREGION} {$REGION 'Stream of ValueType related resources'} public type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.IO.Resources.pas,v $', '$Revision: 1.1 $', '$Date: 2005/12/24 12:25:13 $')] StreamOfValueType = class abstract (&Object) {$REGION 'Hidden constructor'} strict protected constructor Create; {$ENDREGION} {$REGION 'Exception messages'} public class function EmptyArrayNotAllowed: string; overload; static; class function EmptyArrayNotAllowed(culture: CultureInfo): string; overload; static; class function TypeNotAllowed(&type: System.Type): string; overload; static; class function TypeNotAllowed(culture: CultureInfo; &type: System.Type): string; overload; static; class function TypeNotAllowedInValueType(fieldType, valueTypeType: System.Type): string; overload; static; class function TypeNotAllowedInValueType(culture: CultureInfo; fieldType, valueTypeType: System.Type): string; overload; static; class function WrongValueType(actualType, expectedType: System.Type): string; overload; static; class function WrongValueType(culture: CultureInfo; actualType, expectedType: System.Type): string; overload; static; class function UninitializedField(fieldName: string; &type: System.Type): string; overload; static; class function UninitializedField(culture: CultureInfo; fieldName: string; &type: System.Type): string; overload; static; {$ENDREGION} end; {$ENDREGION} end; {$ENDREGION} implementation {$AUTOBOX ON} {$REGION 'Resources'} class constructor Resources.Create; begin rm := ResourceManager.Create('Jedi.IO', TypeOf(Resources).Assembly); end; constructor Resources.Create; begin inherited Create; end; class function Resources.GetResourceString(id: string): string; begin Result := GetResourceString(CultureInfo.CurrentCulture, id); end; class function Resources.GetResourceString(culture: CultureInfo; id: string): string; begin Result := rm.GetString(id, culture); end; class function Resources.GetResourceString(id: string; arg0: &Object): string; begin Result := System.String.Format(GetResourceString(CultureInfo.CurrentCulture, id), arg0); end; class function Resources.GetResourceString(culture: CultureInfo; id: string; arg0: &Object): string; begin Result := System.String.Format(GetResourceString(culture, id), arg0); end; class function Resources.GetResourceString(id: string; arg0, arg1: &Object): string; begin Result := System.String.Format(GetResourceString(CultureInfo.CurrentCulture, id), arg0, arg1); end; class function Resources.GetResourceString(culture: CultureInfo; id: string; arg0, arg1: &Object): string; begin Result := System.String.Format(GetResourceString(culture, id), arg0, arg1); end; class function Resources.GetResourceString(id: string; arg0, arg1, arg2: &Object): string; begin Result := System.String.Format(GetResourceString(CultureInfo.CurrentCulture, id), arg0, arg1, arg2); end; class function Resources.GetResourceString(culture: CultureInfo; id: string; arg0, arg1, arg2: &Object): string; begin Result := System.String.Format(GetResourceString(culture, id), arg0, arg1, arg2); end; class function Resources.GetResourceString(id: string; args: array of &Object): string; begin Result := System.String.Format(GetResourceString(CultureInfo.CurrentCulture, id), args); end; class function Resources.GetResourceString(culture: CultureInfo; id: string; args: array of &Object): string; begin Result := System.String.Format(GetResourceString(culture, id), args); end; {$ENDREGION} {$REGION 'Resources.IniFiles'} constructor Resources.IniFiles.Create; begin inherited Create; end; class function Resources.IniFiles.ReadErrorBase(culture: CultureInfo; reason: string): string; begin Result := Resources.GetResourceString(culture, 'if_ReadErrorBase', reason); end; class function Resources.IniFiles.ReadError_NoSuchKey(key: string): string; begin Result := ReadError_NoSuchKey(CultureInfo.CurrentCulture, key); end; class function Resources.IniFiles.ReadError_NoSuchKey(culture: CultureInfo; key: string): string; begin Result := ReadErrorBase(culture, Resources.GetResourceString(culture, 'if_NoSuchKey', key)); end; class function Resources.IniFiles.ReadError_NoSuchSectionAndKey(section, key: string): string; begin Result := ReadError_NoSuchSectionAndKey(CultureInfo.CurrentCulture, section, key); end; class function Resources.IniFiles.ReadError_NoSuchSectionAndKey(culture: CultureInfo; section, key: string): string; begin Result := ReadErrorBase(culture, Resources.GetResourceString(culture, 'if_NoSuchSectionAndKey', section, key)); end; {$ENDREGION} {$REGION 'Resources.StreamOfValueType'} constructor Resources.StreamOfValueType.Create; begin inherited Create; end; class function Resources.StreamOfValueType.EmptyArrayNotAllowed: string; begin Result := EmptyArrayNotAllowed(CultureInfo.CurrentCulture); end; class function Resources.StreamOfValueType.EmptyArrayNotAllowed(culture: CultureInfo): string; begin Result := Resources.GetResourceString(culture, 'sovt_EmptyArrayNotAllowed'); end; class function Resources.StreamOfValueType.TypeNotAllowed(&type: System.Type): string; begin Result := TypeNotAllowed(CultureInfo.CurrentCulture, &type); end; class function Resources.StreamOfValueType.TypeNotAllowed(culture: CultureInfo; &type: System.Type): string; begin Result := Resources.GetResourceString(culture, 'sovt_TypeNotAllowed', &type.FullName); end; class function Resources.StreamOfValueType.TypeNotAllowedInValueType(fieldType, valueTypeType: System.Type): string; begin Result := TypeNotAllowedInValueType(CultureInfo.CurrentCulture, fieldType, valueTypeType); end; class function Resources.StreamOfValueType.TypeNotAllowedInValueType(culture: CultureInfo; fieldType, valueTypeType: System.Type): string; begin Result := Resources.GetResourceString(culture, 'sovt_TypeNotAllowedInRecord', fieldType.FullName, valueTypeType.FullName); end; class function Resources.StreamOfValueType.WrongValueType(actualType, expectedType: System.Type): string; begin Result := WrongValueType(CultureInfo.CurrentCulture, actualType, expectedType); end; class function Resources.StreamOfValueType.WrongValueType(culture: CultureInfo; actualType, expectedType: System.Type): string; begin Result := Resources.GetResourceString(culture, 'sovt_WrongValueType', actualType.FullName, expectedType.FullName); end; class function Resources.StreamOfValueType.UninitializedField(fieldName: string; &type: System.Type): string; begin Result := UninitializedField(CultureInfo.CurrentCulture, fieldName, &type); end; class function Resources.StreamOfValueType.UninitializedField(culture: CultureInfo; fieldName: string; &type: System.Type): string; begin Result := Resources.GetResourceString(culture, 'sovt_UninitialedField', fieldName, &type.FullName); end; {$ENDREGION} end. Index: Jedi.IO.IniFiles.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.IO.IniFiles.pas,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Jedi.IO.IniFiles.pas 16 Jun 2005 13:15:17 -0000 1.6 --- Jedi.IO.IniFiles.pas 24 Dec 2005 12:25:13 -0000 1.7 *************** *** 34,37 **** --- 34,38 ---- System.Resources, System.Threading, + Jedi.IO.Resources, Jedi.System.FrameworkResources, Jedi.System.SourceVersioning, *************** *** 50,54 **** type {$REGION 'Enumerator entry'} ! [JediSourceInfo('$Header$')] IniFileEntry = record strict private --- 51,58 ---- type {$REGION 'Enumerator entry'} ! [JediSourceInfo( ! '$Source$', ! '$Revision$', ! '$Date$')] IniFileEntry = record strict private *************** *** 65,69 **** {$REGION 'Enumerator interface'} ! [JediSourceInfo('$Header$')] IIniFileEnumerator = interface (IEnumerator) function Key: string; --- 69,76 ---- {$REGION 'Enumerator interface'} ! [JediSourceInfo( ! '$Source$', ! '$Revision$', ! '$Date$')] IIniFileEnumerator = interface (IEnumerator) function Key: string; *************** *** 76,80 **** {$REGION 'Base class'} type ! [JediSourceInfo('$Header$')] IniFileBase = class abstract (&Object) {$REGION 'Private data'} --- 83,90 ---- {$REGION 'Base class'} type ! [JediSourceInfo( ! '$Source$', ! '$Revision$', ! '$Date$')] IniFileBase = class abstract (&Object) {$REGION 'Private data'} *************** *** 87,91 **** strict protected type ! [JediSourceInfo('$Header$')] IniFileEnumerator = class abstract (&Object, IIniFileEnumerator, ICloneable, IEnumerator) {$REGION 'Internal data'} --- 97,104 ---- strict protected type ! [JediSourceInfo( ! '$Source$', ! '$Revision$', ! '$Date$')] IniFileEnumerator = class abstract (&Object, IIniFileEnumerator, ICloneable, IEnumerator) {$REGION 'Internal data'} *************** *** 242,246 **** {$REGION 'Memory based base class'} type ! [JediSourceInfo('$Header$')] MemoryIniFileBase = class abstract (IniFileBase) {$REGION 'Constructor'} --- 255,262 ---- {$REGION 'Memory based base class'} type ! [JediSourceInfo( ! '$Source$', ! '$Revision$', ! '$Date$')] MemoryIniFileBase = class abstract (IniFileBase) {$REGION 'Constructor'} *************** *** 259,263 **** strict protected type ... [truncated message content] |
From: Marcel B. <jed...@us...> - 2005-12-24 12:23:33
|
Update of /cvsroot/jedidotnet/main/resources In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17290/main/resources Added Files: Jedi.Core.resx Jedi.IO.resx Jedi.System.resx Jedi.Text.resx Removed Files: Jedi.Math.resx Log Message: * Added resource files for Jedi.Core, Jedi.IO, Jedi.System and Jedi.Text assemblies * removed resource file for now obsolete Jedi.Math assembly (resources have been merged into Jedi.System.resx) --- NEW FILE: Jedi.IO.resx --- <?xml version="1.0" encoding="utf-8"?> <root> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:element name="root" msdata:IsDataSet="true"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="data"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> </xsd:complexType> </xsd:element> <xsd:element name="resheader"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema> <resheader name="resmimetype"> <value>text/microsoft-resx</value> </resheader> <resheader name="version"> <value>1.3</value> </resheader> <resheader name="reader"> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <data name="sovt_EmptyArrayNotAllowed"> <value>Empty array type is not allowed.</value> </data> <data name="sovt_TypeNotAllowed"> <value>Type {0} is not allowed as a StreamOfValueType type.</value> </data> <data name="sovt_TypeNotAllowedInRecord"> <value>Type {0} is not allowed in {1} when the latter is used as a StreamOfValueType type.</value> </data> <data name="sovt_UninitializedField"> <value>Field {0} of {1} is not initialized; it is null.</value> </data> <data name="sovt_WrongRecordType"> <value>{0} is the wrong type for a stream of {1}.</value> </data> <data name="if_ReadErrorBase"> <value>Read error: {0}.</value> </data> <data name="if_NoSuchKey"> <value>key {0} does not exist</value> </data> <data name="if_NoSuchSectionAndKey"> <value>section {0}, key {1} does not exist</value> </data> </root> --- NEW FILE: Jedi.Text.resx --- <?xml version="1.0" encoding="utf-8"?> <root> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:element name="root" msdata:IsDataSet="true"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="data"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> </xsd:complexType> </xsd:element> <xsd:element name="resheader"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema> <resheader name="resmimetype"> <value>text/microsoft-resx</value> </resheader> <resheader name="version"> <value>1.3</value> </resheader> <resheader name="reader"> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <data name="tkn_ProviderNotInitialized"> <value>The token provider has not started. Call Next.</value> </data> </root> --- Jedi.Math.resx DELETED --- --- NEW FILE: Jedi.System.resx --- <?xml version="1.0" encoding="utf-8"?> <root> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:element name="root" msdata:IsDataSet="true"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="data"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> </xsd:complexType> </xsd:element> <xsd:element name="resheader"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema> <resheader name="resmimetype"> <value>text/microsoft-resx</value> </resheader> <resheader name="version"> <value>1.3</value> </resheader> <resheader name="reader"> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <data name="cmd_MatchIsEmpty"> <value>The specified switch match was either Null, an empty string or contained only whitespaces.</value> </data> <data name="cmd_InvalidHandlerAncestor"> <value>Type handler must derive from {0}.</value> </data> <data name="cmd_ValueRequiredFor"> <value>Missing value for switch {0}.</value> </data> <data name="cmd_InvalidValueFor"> <value>Invalid value for switch {0}. Value specified: {1}</value> </data> <data name="cmd_UnknownSwitch"> <value>Unknown switch {0}.</value> </data> <data name="cmd_ResponseFileNeedsFilename"> <value>No file name specified for the response file switch.</value> </data> <data name="cmd_NoHandlerForType"> <value>No handler defined for type {0}.</value> </data> <data name="cmd_HandlerInvalidCtor"> <value>Handler {0} has no compatible constructor.</value> </data> <data name="cmd_DuplicateSwitch"> <value>Switch '{0}', declared by {1}, was previously declared by {2}.</value> </data> <data name="cmd_MethSigError"> <value>Method signature incorrect. Two System.String type arguments and one System.Int32 by reference argument required.</value> </data> <data name="ParserExpBase"> <value>Expected {0}. Line {1}, column {2}.</value> </data> <data name="ParserExpClosePar"> <value>closing parenthesis (opening parenthesis at line {0}, colum {1})</value> </data> <data name="ParserExpPrimary"> <value>open parenthesis, number or identifier</value> </data> <data name="ParserExpCondValueSep"> <value>a colon (:)</value> </data> <data name="ParserExpArgSep"> <value>a comma (,)</value> </data> <data name="ParserUnknownIdent"> <value>Unknown identifier '{0}'. Line {1}, column {2}.</value> </data> </root> --- NEW FILE: Jedi.Core.resx --- <?xml version="1.0" encoding="utf-8"?> <root> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:element name="root" msdata:IsDataSet="true"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="data"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" /> <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> </xsd:complexType> </xsd:element> <xsd:element name="resheader"> <xsd:complexType> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> </xsd:sequence> <xsd:attribute name="name" type="xsd:string" use="required" /> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> </xsd:element> </xsd:schema> <resheader name="resmimetype"> <value>text/microsoft-resx</value> </resheader> <resheader name="version"> <value>1.3</value> </resheader> <resheader name="reader"> <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <resheader name="writer"> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> </resheader> <data name="ArgMustBeBetween"> <value>{0} must be between {1} and {2}.</value> </data> <data name="ArgMustBeBetweenInclusive"> <value>{0} must be between {1} and {2}, inclusive.</value> </data> <data name="InlColl_NewPropName"> <value>(new)</value> </data> <data name="InlColl_NewPropDescrList"> <value>Adds a new item to the collection</value> </data> <data name="InlColl_NewPropDescrDict"> <value>Adds a new item to the collection using the specified key</value> </data> <data name="InlColl_NoIndexer"> <value>The collection does not have an indexer called Item or Items.</value> </data> <data name="scheduleNotAllowedAsChild"> <value>Schedule {0} can not be contained in schedule {1}.</value> </data> <data name="ArgNotAScheduledEvt"> <value>Specified argument is not a ScheduledEvent descendant.</value> </data> <data name="srcinf_InvalidCVSHeader"> <value>Not an $Id: Jedi.Core.resx,v 1.1 2005/12/24 12:23:24 jedi_mbe Exp $ or $Header: /cvsroot/jedidotnet/main/resources/Jedi.Core.resx,v 1.1 2005/12/24 12:23:24 jedi_mbe Exp $ CVS keyword expansion.</value> </data> <data name="srcinf_CVSHeaderMissingFile"> <value>File name not found in the specified id string.</value> </data> <data name="srcinf_CVSHeaderMissingRevision"> <value>Revision number not found in the specified id string.</value> </data> <data name="srcinf_CVSHeaderMissingDate"> <value>Date not found in the specified id string.</value> </data> <data name="srcinf_CVSTooManyPathLevels"> <value>Path does not contain that many levels.</value> </data> <data name="quotedstr_EndsInGarbage"> <value>The specified string ends in garbage.</value> </data> <data name="quotedstr_EndQuoteMissing"> <value>The specified string is missing an end quote.</value> </data> <data name="escapedstr_EndsWithEscapeChar"> <value>The specified string ends with the escape character.</value> </data> <data name="tabset_NoDuplicatePositions"> <value>Duplicate positions are not allowed.</value> </data> <data name="tabset_StopsAndDefaultSeparator"> <value> and </value> </data> <data name="tabset_DefaultPrefix"> <value>every </value> </data> <data name="tabset_DefaultAutomaticSuffix"> <value> (automatic)</value> </data> </root> |
From: Marcel B. <jed...@us...> - 2005-09-27 18:29:43
|
Update of /cvsroot/jedidotnet/main/run In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14380/main/run Modified Files: Jedi.Math.Evaluation.Tokenization.pas Log Message: Tokenizer didn't recognize identifiers Index: Jedi.Math.Evaluation.Tokenization.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.Tokenization.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Jedi.Math.Evaluation.Tokenization.pas 25 Sep 2005 11:28:07 -0000 1.2 --- Jedi.Math.Evaluation.Tokenization.pas 27 Sep 2005 18:29:35 -0000 1.3 *************** *** 57,60 **** --- 57,61 ---- strict protected function CheckGreaterThanBasedTokens(out token: Token): Boolean; + function CheckIdentifierToken(out token: Token): Boolean; function CheckLessThanBasedTokens(out token: Token): Boolean; function CheckLogicalTokens(out token: Token): Boolean; *************** *** 157,160 **** --- 158,184 ---- end; + function MathLexer.CheckIdentifierToken(out token: Token): Boolean; + var + sb: StringBuilder; + startLine: Integer; + startColumn: Integer; + begin + // When this method is entered, we already know it's because it hasn't recognized anything to do with an expression + // Therefore, it must be an identifier. We consider everything up to the next whitespace or expression related + // character part of the identifier. + Result := Input.Sequence.Length > 0; + if Result then + begin + sb := StringBuilder.Create; + startLine := Input.Line; + startColumn := Input.Column; + repeat + sb.Append(Input.Sequence); + until not Input.Next or ('+-*/<>=!&|^?:,'.IndexOf(Input.Sequence.Chars[0]) > -1); + Result := sb.Length > 0; + token := IdentifierToken.Create(Context, startLine, startColumn, sb.ToString); + end; + end; + function MathLexer.CheckLessThanBasedTokens(out token: Token): Boolean; var *************** *** 350,354 **** begin CheckWhitespace(Result) or CheckNumberToken(Result) or CheckGreaterThanBasedTokens(Result) or ! CheckLessThanBasedTokens(Result) or CheckLogicalTokens(Result) or CheckSingleCharTokens(Result); end; --- 374,379 ---- begin CheckWhitespace(Result) or CheckNumberToken(Result) or CheckGreaterThanBasedTokens(Result) or ! CheckLessThanBasedTokens(Result) or CheckLogicalTokens(Result) or CheckSingleCharTokens(Result) or ! CheckIdentifierToken(Result); end; |
From: Marcel B. <jed...@us...> - 2005-09-25 11:28:16
|
Update of /cvsroot/jedidotnet/main/run In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24559/main/run Modified Files: Jedi.Math.Evaluation.Base.pas Jedi.Math.Evaluation.Tokenization.pas Jedi.Math.Evaluation.Tokens.pas Jedi.Math.Resources.pas Log Message: Adapted to redesigned tokenization Index: Jedi.Math.Evaluation.Base.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.Base.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Jedi.Math.Evaluation.Base.pas 22 Aug 2005 17:27:08 -0000 1.1 --- Jedi.Math.Evaluation.Base.pas 25 Sep 2005 11:28:07 -0000 1.2 *************** *** 30,34 **** Jedi.System.SourceVersioning, Jedi.System.Strings, ! Jedi.Text.Tokenization.Base, System.Collections, System.Globalization, --- 30,35 ---- Jedi.System.SourceVersioning, Jedi.System.Strings, ! Jedi.Text.Tokenization.ProviderBase, ! Jedi.Text.Tokenization.TokenBase, System.Collections, System.Globalization, *************** *** 547,551 **** al: ArrayList; oldEndTypes: IList; ! openParToken: IToken; begin al := ArrayList.Create; --- 548,552 ---- al: ArrayList; oldEndTypes: IList; ! openParToken: Token; begin al := ArrayList.Create; *************** *** 647,650 **** --- 648,652 ---- FProcessor := processor; FTokens := tokens; + FTokens.Next; // initialize to first token end; *************** *** 666,670 **** namespace: Namespace): &Object; begin ! Result := Parse(MathLexer.Tokenize(s, numberFormat), processor, namespace); end; --- 668,672 ---- namespace: Namespace): &Object; begin ! Result := Parse(MathLexer.Tokenize(s, CultureInfo.InvariantCulture), processor, namespace); end; *************** *** 833,837 **** // we have either reached the end of the token stream or one of the EndTypes tokens. // TODO: add check for correct end of parsing ! if ((EndTypes = nil) or (EndTypes.Count = 0)) and not (Tokens.Current is EndOfTokenizerToken) then raise ParserException.Create('Operator or end of string expected.'); end; --- 835,839 ---- // we have either reached the end of the token stream or one of the EndTypes tokens. // TODO: add check for correct end of parsing ! if ((EndTypes = nil) or (EndTypes.Count = 0)) and not (Tokens.Current is TokenizerEndToken) then raise ParserException.Create('Operator or end of string expected.'); end; *************** *** 899,903 **** var tmpEndTypes: IList; ! startToken: IToken; sym: Symbol; begin --- 901,905 ---- var tmpEndTypes: IList; ! startToken: Token; sym: Symbol; begin Index: Jedi.Math.Evaluation.Tokenization.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.Tokenization.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Jedi.Math.Evaluation.Tokenization.pas 22 Aug 2005 17:27:08 -0000 1.1 --- Jedi.Math.Evaluation.Tokenization.pas 25 Sep 2005 11:28:07 -0000 1.2 *************** *** 30,36 **** Jedi.System.SourceVersioning, Jedi.System.Strings, ! Jedi.Text.Tokenization.Base, System.Globalization, ! System.IO; {$ENDREGION} --- 30,40 ---- Jedi.System.SourceVersioning, Jedi.System.Strings, ! Jedi.Text.Tokenization.InputBase, ! Jedi.Text.Tokenization.ProviderBase, ! Jedi.Text.Tokenization.TokenBase, ! Jedi.Text.Tokenization.TokenizerBase, System.Globalization, ! System.IO, ! System.Text; {$ENDREGION} *************** *** 41,78 **** '$Revision$', '$Date$')] ! MathLexer = class (&Object, ITokenProvider) {$REGION 'Constructors'} strict protected ! constructor Create(tokenizer: ITokenizer); {$ENDREGION} {$REGION 'Data'} strict private ! FFromStack: Boolean; ! FList: ITokenProvider; ! FTokenizer: ITokenizer; {$ENDREGION} ! {$REGION 'ITokenProvider methods'} strict protected ! function get_Current: IToken; ! function Next: Boolean; ! procedure RestorePointer; ! procedure SavePointer; {$ENDREGION} {$REGION 'Static methods'} public class function Tokenize(s: string): ITokenProvider; overload; static; ! class function Tokenize(s: string; formatProvider: IFormatProvider): ITokenProvider; overload; static; class function Tokenize(reader: TextReader): ITokenProvider; overload; static; ! class function Tokenize(reader: TextReader; formatProvider: IFormatProvider): ITokenProvider; overload; static; ! ! class function Tokenize(reader: TextReader; ownsReader: Boolean): ITokenProvider; overload; static; ! class function Tokenize(reader: TextReader; ownsReader: Boolean; ! formatProvider: IFormatProvider): ITokenProvider; overload; static; {$ENDREGION} end; {$ENDREGION} ! {$REGION 'Math tokenizer'} type [JediSourceInfo( --- 45,92 ---- '$Revision$', '$Date$')] ! MathLexer = class (Tokenizer) {$REGION 'Constructors'} strict protected ! constructor Create(input: TokenizerInputProvider; culture: CultureInfo); {$ENDREGION} {$REGION 'Data'} strict private ! FCulture: CultureInfo; {$ENDREGION} ! {$REGION 'Individual tokenization methods'} strict protected ! function CheckGreaterThanBasedTokens(out token: Token): Boolean; ! function CheckLessThanBasedTokens(out token: Token): Boolean; ! function CheckLogicalTokens(out token: Token): Boolean; ! function CheckNumberToken(out token: Token): Boolean; ! function CheckSingleCharTokens(out token: Token): Boolean; ! {$ENDREGION} ! {$REGION 'Overrides'} ! strict protected ! function InputToken: Token; override; ! {$ENDREGION} ! {$REGION 'Properties'} ! public ! property Culture: CultureInfo read FCulture; {$ENDREGION} {$REGION 'Static methods'} public class function Tokenize(s: string): ITokenProvider; overload; static; ! class function Tokenize(s: string; culture: CultureInfo): ITokenProvider; overload; static; class function Tokenize(reader: TextReader): ITokenProvider; overload; static; ! class function Tokenize(reader: TextReader; culture: CultureInfo): ITokenProvider; overload; static; {$ENDREGION} end; {$ENDREGION} ! implementation ! ! {$REGION 'internal uses'} ! uses ! Jedi.Math.Evaluation.Tokens; ! {$ENDREGION} ! ! {$REGION 'Token skipper class'} type [JediSourceInfo( *************** *** 80,194 **** '$Revision$', '$Date$')] ! MathTokenizer = class (TextTokenizer) ! {$REGION 'Constructors'} ! protected ! constructor Create(reader: TextReader; ownsReader: Boolean; formatProvider: IFormatProvider); ! {$ENDREGION} ! {$REGION 'Property accessors'} public ! function get_FormatProvider: IFormatProvider; {$ENDREGION} ! {$REGION 'Properties'} ! public ! property FormatProvider: IFormatProvider read get_FormatProvider; {$ENDREGION} end; {$ENDREGION} - implementation - - {$REGION 'internal uses'} - uses - Jedi.Math.Evaluation.Tokens; - {$ENDREGION} - {$REGION 'MathLexer'} ! constructor MathLexer.Create(tokenizer: ITokenizer); begin ! inherited Create; ! FTokenizer := tokenizer; ! Next; // make sure we're properly intialized end; ! function MathLexer.get_Current: IToken; begin ! if FFromStack then ! Result := FList.Current ! else ! Result := ITokenProvider(FTokenizer).Current; end; ! function MathLexer.Next: Boolean; begin ! if FFromStack then ! Result := FList.Next ! else ! Result := False; ! if not Result then begin ! FFromStack := False; ! Result := TokenProviderUtils.Next(ITokenProvider(FTokenizer), [TypeOf(WhiteSpaceToken), TypeOf(ControlToken)]); end; - if (FList <> nil) and not FFromStack and Result then - TokenList(FList).AddToken(ITokenProvider(FTokenizer).Current); end; ! procedure MathLexer.RestorePointer; begin ! if (FList <> nil) and (TokenList(FList).CanRestorePointer) then begin ! FList.RestorePointer; ! FFromStack := True; end; end; ! procedure MathLexer.SavePointer; begin ! if FList = nil then ! FList := TokenList.Create; ! FList.SavePointer; end; class function MathLexer.Tokenize(s: string): ITokenProvider; begin ! Result := Tokenize(StringReader.Create(s), True, NumberFormatInfo.InvariantInfo); end; ! class function MathLexer.Tokenize(s: string; formatProvider: IFormatProvider): ITokenProvider; begin ! Result := Tokenize(StringReader.Create(s), True, formatProvider); end; class function MathLexer.Tokenize(reader: TextReader): ITokenProvider; begin ! Result := Tokenize(reader, True, NumberFormatInfo.InvariantInfo); end; ! class function MathLexer.Tokenize(reader: TextReader; formatProvider: IFormatProvider): ITokenProvider; begin ! Result := Tokenize(reader, True, formatProvider); end; ! class function MathLexer.Tokenize(reader: TextReader; ownsReader: Boolean): ITokenProvider; begin ! Result := Tokenize(reader, ownsReader, NumberFormatInfo.InvariantInfo); end; ! class function MathLexer.Tokenize(reader: TextReader; ownsReader: Boolean; ! formatProvider: IFormatProvider): ITokenProvider; begin ! Result := MathLexer.Create(MathTokenizer.Create(reader, ownsReader, formatProvider)); end; - {$ENDREGION} ! {$REGION 'MathTokenizer'} ! constructor MathTokenizer.Create(reader: TextReader; ownsReader: Boolean; formatProvider: IFormatProvider); begin ! inherited Create(reader, ownsReader, MathTokenSet.Default, StringUtils.TabSet.Create(2), formatProvider); end; ! function MathTokenizer.get_FormatProvider: IFormatProvider; begin ! Result := IFormatProvider(Context); end; {$ENDREGION} --- 94,414 ---- '$Revision$', '$Date$')] ! TokenSkipper = class (&Object, ITokenProvider) ! {$REGION 'TokenSkipper'} public ! constructor Create(input: ITokenProvider); {$ENDREGION} ! {$REGION 'Data'} ! strict private ! FInput: ITokenProvider; ! {$ENDREGION} ! {$REGION 'ITokenProvider methods'} ! strict protected ! procedure DiscardPointer; ! function get_Current: Token; ! function HasSavedPointer: Boolean; ! function Next: Boolean; ! procedure RestorePointer; ! procedure SavePointer; {$ENDREGION} end; {$ENDREGION} {$REGION 'MathLexer'} ! constructor MathLexer.Create(input: TokenizerInputProvider; culture: CultureInfo); begin ! inherited Create(nil, input); ! FCulture := culture; end; ! function MathLexer.CheckGreaterThanBasedTokens(out token: Token): Boolean; ! var ! line: Integer; ! column: Integer; begin ! Result := Input.Sequence.StartsWith('>'); ! if Result then ! begin ! line := Input.Line; ! column := Input.Column; ! if Input.Next then ! begin ! case Input.Sequence.Chars[0] of ! '=': ! begin ! token := GreaterThanOrEqualToken.Create(context, line, column); ! Input.Next; ! end; ! '>': ! begin ! token := RightShiftToken.Create(context, line, column); ! Input.Next; ! end; ! else ! token := GreaterThanToken.Create(context, line, column); ! end; ! end ! else ! begin ! token := GreaterThanToken.Create(context, line, column); ! Input.Next; ! end; ! end; end; ! function MathLexer.CheckLessThanBasedTokens(out token: Token): Boolean; ! var ! line: Integer; ! column: Integer; begin ! Result := Input.Sequence.StartsWith('<'); ! if Result then begin ! line := Input.Line; ! column := Input.Column; ! if Input.Next then ! begin ! case Input.Sequence.Chars[0] of ! '=': ! begin ! token := LessThanOrEqualToken.Create(context, line, column); ! Input.Next; ! end; ! '<': ! begin ! token := LeftShiftToken.Create(context, line, column); ! Input.Next; ! end; ! '>': ! begin ! token := NotEqualToken.Create(context, line, column); ! Input.Next; ! end; ! else ! token := LessThanToken.Create(context, line, column); ! end; ! end ! else ! begin ! token := LessThanToken.Create(context, line, column); ! Input.Next; ! end; end; end; ! function MathLexer.CheckLogicalTokens(out token: Token): Boolean; ! var ! line: Integer; ! column: Integer; begin ! Result := Input.Sequence.Length > 0; ! if Result then begin ! line := Input.Line; ! column := Input.Column; ! case Input.Sequence.Chars[0] of ! '^': ! begin ! token := XorToken.Create(Context, line, column); ! Input.Next; ! end; ! '|': ! begin ! if Input.Next and (Input.Sequence.Chars[0] = '|') then ! begin ! token := ConditionalOrToken.Create(Context, line, column); ! Input.Next; ! end ! else ! token := OrToken.Create(Context, line, column); ! end; ! '&': ! begin ! if Input.Next and (Input.Sequence.Chars[0] = '&') then ! begin ! token := ConditionalAndToken.Create(Context, line, column); ! Input.Next; ! end ! else ! token := AndToken.Create(Context, line, column); ! end; ! else ! Result := False; ! end; end; end; ! function MathLexer.CheckNumberToken(out token: Token): Boolean; ! var ! decSep: Char; ! startLine: Integer; ! startColumn: Integer; ! hasDecSep: Boolean; ! hasExp: Boolean; ! hasExpSgn: Boolean; ! numberLiteral: StringBuilder; ! curChar: Char; begin ! decSep := Culture.NumberFormat.NumberDecimalSeparator.Chars[0]; ! startLine := Input.Line; ! startColumn := Input.Column; ! hasDecSep := False; ! hasExp := False; ! hasExpSgn := False; ! numberLiteral := StringBuilder.Create; ! Result := False; ! if Input.Sequence.Length > 0 then ! begin ! repeat ! curChar := Input.Sequence.Chars[0]; ! if curChar = decSep then ! begin ! if not hasDecSep then ! begin ! hasDecSep := True; ! if numberLiteral.Length = 0 then ! numberLiteral.Append('0'); ! numberLiteral.Append(decSep); ! end ! else ! Result := True; ! end ! else ! if (curChar = 'e') or (curChar = 'E') then ! begin ! if numberLiteral.Length = 0 then ! Result := True ! else ! begin ! hasExp := True; ! numberLiteral.Append('e'); ! end; ! end ! else ! if (curChar = '+') or (curChar = '-') then ! begin ! if hasExp and not hasExpSgn then ! begin ! hasExpSgn := True; ! numberLiteral.Append(curChar); ! end ! else ! Result := True; ! end ! else ! if (curChar >= '0') and (curChar <= '9') then ! begin ! hasExpSgn := hasExp; ! numberLiteral.Append(curChar); ! end ! else ! Result := True; ! until Result or not Input.Next; ! Result := numberLiteral.Length > 0; ! end ! else ! Result := False; ! if Result then ! token := NumberToken.Create(Context, startLine, startColumn, System.Double.Parse(numberLiteral.ToString, ! Culture.NumberFormat)); ! end; ! ! function MathLexer.CheckSingleCharTokens(out token: Token): Boolean; ! begin ! Result := True; ! case Input.Sequence.Chars[0] of ! '!': ! token := NotToken.Create(Context, Input.Line, Input.Column); ! '=': ! token := EqualToken.Create(Context, Input.Line, Input.Column); ! '(': ! token := OpenParenthesisToken.Create(Context, Input.Line, Input.Column); ! ')': ! token := CloseParenthesisToken.Create(Context, Input.Line, Input.Column); ! ',': ! token := CommaToken.Create(Context, Input.Line, Input.Column); ! '?': ! token := ConditionToken.Create(Context, Input.Line, Input.Column); ! ':': ! token := ConditionValueSeparatorToken.Create(Context, Input.Line, Input.Column); ! '+': ! token := PlusToken.Create(Context, Input.Line, Input.Column); ! '-': ! token := MinusToken.Create(Context, Input.Line, Input.Column); ! '*': ! token := AsterixToken.Create(Context, Input.Line, Input.Column); ! '/': ! token := ForwardSlashToken.Create(Context, Input.Line, Input.Column); ! else ! Result := False; ! end; ! if Result then ! Input.Next; ! end; ! ! function MathLexer.InputToken: Token; ! begin ! CheckWhitespace(Result) or CheckNumberToken(Result) or CheckGreaterThanBasedTokens(Result) or ! CheckLessThanBasedTokens(Result) or CheckLogicalTokens(Result) or CheckSingleCharTokens(Result); end; class function MathLexer.Tokenize(s: string): ITokenProvider; begin ! Result := Tokenize(StringReader.Create(s), CultureInfo.InvariantCulture); end; ! class function MathLexer.Tokenize(s: string; culture: CultureInfo): ITokenProvider; begin ! Result := Tokenize(StringReader.Create(s), culture); end; class function MathLexer.Tokenize(reader: TextReader): ITokenProvider; begin ! Result := Tokenize(reader, CultureInfo.InvariantCulture); end; ! class function MathLexer.Tokenize(reader: TextReader; culture: CultureInfo): ITokenProvider; begin ! Result := TokenSkipper.Create(MathLexer.Create(TokenizerInputProvider.FromReader(reader), culture)); end; + {$ENDREGION} ! {$REGION 'TokenSkipper'} ! constructor TokenSkipper.Create(input: ITokenProvider); begin ! inherited Create; ! FInput := input; end; ! procedure TokenSkipper.DiscardPointer; begin ! FInput.DiscardPointer; end; ! function TokenSkipper.get_Current: Token; begin ! Result := FInput.Current; end; ! function TokenSkipper.HasSavedPointer: Boolean; begin ! Result := FInput.HasSavedPointer; ! end; ! ! function TokenSkipper.Next: Boolean; ! begin ! repeat ! Result := FInput.Next; ! until not Result or not ((FInput.Current is WhitespaceToken) or (FInput.Current is ControlToken)); ! end; ! ! procedure TokenSkipper.RestorePointer; ! begin ! FInput.RestorePointer; ! end; ! ! procedure TokenSkipper.SavePointer; ! begin ! FInput.SavePointer; end; {$ENDREGION} Index: Jedi.Math.Evaluation.Tokens.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.Tokens.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Jedi.Math.Evaluation.Tokens.pas 22 Aug 2005 17:27:08 -0000 1.1 --- Jedi.Math.Evaluation.Tokens.pas 25 Sep 2005 11:28:07 -0000 1.2 *************** *** 30,34 **** Jedi.Math.Evaluation.Tokenization, Jedi.System.SourceVersioning, ! Jedi.Text.Tokenization.Base, System.Globalization; {$ENDREGION} --- 30,35 ---- Jedi.Math.Evaluation.Tokenization, Jedi.System.SourceVersioning, ! Jedi.Text.Tokenization.TokenBase, ! System.Collections, [...2055 lines suppressed...] begin Result := '^'; --- 899,915 ---- {$REGION 'ShiftToken'} ! constructor ShiftToken.Create(context: &Object; line, column: Integer); begin ! inherited Create(context, line, column); end; {$ENDREGION} {$REGION 'XorToken'} ! constructor XorToken.Create(context: &Object; line, column: Integer); begin ! inherited Create(context, line, column); end; ! function XorToken.get_Literal: string; begin Result := '^'; Index: Jedi.Math.Resources.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.Math.Resources.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Jedi.Math.Resources.pas 22 Aug 2005 17:27:08 -0000 1.1 --- Jedi.Math.Resources.pas 25 Sep 2005 11:28:07 -0000 1.2 *************** *** 29,33 **** uses Jedi.System.SourceVersioning, ! Jedi.Text.Tokenization.Base, System.Globalization, System.Resources; --- 29,33 ---- uses Jedi.System.SourceVersioning, ! Jedi.Text.Tokenization.TokenBase, System.Globalization, System.Resources; *************** *** 72,93 **** {$REGION 'Helper methods'} strict protected ! class function ParserExpectedMsg(culture: CultureInfo; currentToken: IToken; expectedId: string; args: ObjectArray): string; static; {$ENDREGION} {$REGION 'Parser exception messages'} public ! class function ParserExpectedClosingParenthesis(currentToken, openParenthesis: IToken): string; overload; static; class function ParserExpectedClosingParenthesis(culture: CultureInfo; currentToken, ! openParenthesis: IToken): string; overload; static; ! class function ParserExpectedConditionalValueSeparator(currentToken: IToken): string; overload; static; class function ParserExpectedConditionalValueSeparator(culture: CultureInfo; ! currentToken: IToken): string; overload; static; ! class function ParserExpectedArgumentSeparator(currentToken: IToken): string; overload; static; class function ParserExpectedArgumentSeparator(culture: CultureInfo; ! currentToken: IToken): string; overload; static; ! class function ParserExpectedPrimary(currentToken: IToken): string; overload; static; ! class function ParserExpectedPrimary(culture: CultureInfo; currentToken: IToken): string; overload; static; ! class function ParserUnknownIdentifier(currentToken: IToken): string; overload; static; ! class function ParserUnknownIdentifier(culture: CultureInfo; currentToken: IToken): string; overload; static; {$ENDREGION} end; --- 72,93 ---- {$REGION 'Helper methods'} strict protected ! class function ParserExpectedMsg(culture: CultureInfo; currentToken: Token; expectedId: string; args: ObjectArray): string; static; {$ENDREGION} {$REGION 'Parser exception messages'} public ! class function ParserExpectedClosingParenthesis(currentToken, openParenthesis: Token): string; overload; static; class function ParserExpectedClosingParenthesis(culture: CultureInfo; currentToken, ! openParenthesis: Token): string; overload; static; ! class function ParserExpectedConditionalValueSeparator(currentToken: Token): string; overload; static; class function ParserExpectedConditionalValueSeparator(culture: CultureInfo; ! currentToken: Token): string; overload; static; ! class function ParserExpectedArgumentSeparator(currentToken: Token): string; overload; static; class function ParserExpectedArgumentSeparator(culture: CultureInfo; ! currentToken: Token): string; overload; static; ! class function ParserExpectedPrimary(currentToken: Token): string; overload; static; ! class function ParserExpectedPrimary(culture: CultureInfo; currentToken: Token): string; overload; static; ! class function ParserUnknownIdentifier(currentToken: Token): string; overload; static; ! class function ParserUnknownIdentifier(culture: CultureInfo; currentToken: Token): string; overload; static; {$ENDREGION} end; *************** *** 159,163 **** end; ! class function Resources.ParserExpectedClosingParenthesis(currentToken, openParenthesis: IToken): string; begin Result := ParserExpectedClosingParenthesis(CultureInfo.CurrentCulture, currentToken, openParenthesis); --- 159,163 ---- end; ! class function Resources.ParserExpectedClosingParenthesis(currentToken, openParenthesis: Token): string; begin Result := ParserExpectedClosingParenthesis(CultureInfo.CurrentCulture, currentToken, openParenthesis); *************** *** 165,169 **** class function Resources.ParserExpectedClosingParenthesis(culture: CultureInfo; currentToken, ! openParenthesis: IToken): string; begin Result := GetResourceString(culture, 'ParserExpBase', GetResourceString(culture, 'ParserExpClosePar', --- 165,169 ---- class function Resources.ParserExpectedClosingParenthesis(culture: CultureInfo; currentToken, ! openParenthesis: Token): string; begin Result := GetResourceString(culture, 'ParserExpBase', GetResourceString(culture, 'ParserExpClosePar', *************** *** 171,195 **** end; ! class function Resources.ParserExpectedConditionalValueSeparator(currentToken: IToken): string; begin Result := ParserExpectedConditionalValueSeparator(CultureInfo.CurrentCulture, currentToken); end; ! class function Resources.ParserExpectedConditionalValueSeparator(culture: CultureInfo; currentToken: IToken): string; begin Result := ParserExpectedMsg(culture, currentToken, 'ParserExpCondValueSep', nil); end; ! class function Resources.ParserExpectedArgumentSeparator(currentToken: IToken): string; begin Result := ParserExpectedArgumentSeparator(CultureInfo.CurrentCulture, currentToken); end; ! class function Resources.ParserExpectedArgumentSeparator(culture: CultureInfo; currentToken: IToken): string; begin Result := ParserExpectedMsg(culture, currentToken, 'parserExpArgSep', nil); end; ! class function Resources.ParserExpectedMsg(culture: CultureInfo; currentToken: IToken; expectedId: string; args: ObjectArray): string; begin --- 171,195 ---- end; ! class function Resources.ParserExpectedConditionalValueSeparator(currentToken: Token): string; begin Result := ParserExpectedConditionalValueSeparator(CultureInfo.CurrentCulture, currentToken); end; ! class function Resources.ParserExpectedConditionalValueSeparator(culture: CultureInfo; currentToken: Token): string; begin Result := ParserExpectedMsg(culture, currentToken, 'ParserExpCondValueSep', nil); end; ! class function Resources.ParserExpectedArgumentSeparator(currentToken: Token): string; begin Result := ParserExpectedArgumentSeparator(CultureInfo.CurrentCulture, currentToken); end; ! class function Resources.ParserExpectedArgumentSeparator(culture: CultureInfo; currentToken: Token): string; begin Result := ParserExpectedMsg(culture, currentToken, 'parserExpArgSep', nil); end; ! class function Resources.ParserExpectedMsg(culture: CultureInfo; currentToken: Token; expectedId: string; args: ObjectArray): string; begin *************** *** 201,220 **** end; ! class function Resources.ParserExpectedPrimary(currentToken: IToken): string; begin Result := ParserExpectedPrimary(CultureInfo.CurrentCulture, currentToken); end; ! class function Resources.ParserExpectedPrimary(culture: CultureInfo; currentToken: IToken): string; begin Result := ParserExpectedMsg(culture, currentToken, 'ParserExpPrimary', nil); end; ! class function Resources.ParserUnknownIdentifier(currentToken: IToken): string; begin Result := ParserUnknownIdentifier(CultureInfo.InvariantCulture, currentToken); end; ! class function Resources.ParserUnknownIdentifier(culture: CultureInfo; currentToken: IToken): string; begin Result := GetResourceString(culture, 'ParserUnknownIdent', currentToken.Literal, currentToken.Line, --- 201,220 ---- end; ! class function Resources.ParserExpectedPrimary(currentToken: Token): string; begin Result := ParserExpectedPrimary(CultureInfo.CurrentCulture, currentToken); end; ! class function Resources.ParserExpectedPrimary(culture: CultureInfo; currentToken: Token): string; begin Result := ParserExpectedMsg(culture, currentToken, 'ParserExpPrimary', nil); end; ! class function Resources.ParserUnknownIdentifier(currentToken: Token): string; begin Result := ParserUnknownIdentifier(CultureInfo.InvariantCulture, currentToken); end; ! class function Resources.ParserUnknownIdentifier(culture: CultureInfo; currentToken: Token): string; begin Result := GetResourceString(culture, 'ParserUnknownIdent', currentToken.Literal, currentToken.Line, |
From: Marcel B. <jed...@us...> - 2005-09-25 11:27:37
|
Update of /cvsroot/jedidotnet/main/run In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24439/main/run Added Files: Jedi.Text.Tokenization.InputBase.pas Jedi.Text.Tokenization.ProviderBase.pas Jedi.Text.Tokenization.TokenBase.pas Jedi.Text.Tokenization.TokenizerBase.pas Removed Files: Jedi.Text.Tokenization.Base.pas Log Message: Redesigned tokenization --- Jedi.Text.Tokenization.Base.pas DELETED --- --- NEW FILE: Jedi.Text.Tokenization.TokenizerBase.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.Text.Tokenization.TokenizerBase.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet Known Issues: ---------------------------------------------------------------------------------------------------} // $Id: Jedi.Text.Tokenization.TokenizerBase.pas,v 1.1 2005/09/25 11:27:26 jedi_mbe Exp $ unit Jedi.Text.Tokenization.TokenizerBase; interface {$REGION 'uses'} uses Jedi.System.SourceVersioning, Jedi.Text.Tokenization.InputBase, Jedi.Text.Tokenization.ProviderBase, Jedi.Text.Tokenization.TokenBase, System.Text; {$ENDREGION} {$REGION 'Tokenizer base class'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.TokenizerBase.pas,v $', '$Revision: 1.1 $', '$Date: 2005/09/25 11:27:26 $')] Tokenizer = class abstract (&Object, ITokenProvider) {$REGION 'Constructors'} strict protected constructor Create(context: &Object; input: TokenizerInputProvider); {$ENDREGION} {$REGION 'TokenizerState enumeration'} strict protected type TokenizerState = (Initializing, Processing, Finalizing, Finalized); {$ENDREGION} {$REGION 'Data'} strict private FBuffer: TokenList; FContext: &Object; FCurrent: Token; FInput: TokenizerInputProvider; FState: TokenizerState; {$ENDREGION} {$REGION 'ITokenProvider methods'} strict protected procedure DiscardPointer; function get_Current: Token; function HasSavedPointer: Boolean; function Next: Boolean; procedure RestorePointer; procedure SavePointer; {$ENDREGION} {$REGION 'Abstract methods'} strict protected function InputToken: Token; virtual; abstract; {$ENDREGION} {$REGION 'Internal methods'} strict private function GetWhitespaceSequence: string; {$ENDREGION} {$REGION 'Whitespace checking methods'} strict protected function CheckLiteralWhitespace(out token: Token): Boolean; function CheckWhitespace(out token: Token): Boolean; {$ENDREGION} {$REGION 'Properties'} strict protected property Buffer: TokenList read FBuffer; property Input: TokenizerInputProvider read FInput; property State: TokenizerState read FState; public property Context: &Object read FContext; {$ENDREGION} end; {$ENDREGION} implementation {$REGION 'Tokenizer'} constructor Tokenizer.Create(context: &Object; input: TokenizerInputProvider); begin inherited Create; FBuffer := TokenList.Create; FContext := context; FInput := input; FState := TokenizerState.Initializing; end; function Tokenizer.CheckLiteralWhitespace(out token: Token): Boolean; var startLine: Integer; startColumn: Integer; seq: string; begin startLine := Input.Line; startColumn := Input.Column; seq := GetWhitespaceSequence; Result := (seq.Length > 0); if Result then token := WhitespaceToken.CreateLiteral(seq, Context, startLine, startColumn) else token := nil; end; function Tokenizer.CheckWhitespace(out token: Token): Boolean; var startLine: Integer; startColumn: Integer; seq: string; begin startLine := Input.Line; startColumn := Input.Column; seq := GetWhitespaceSequence; Result := (seq.Length > 0); if Result then token := WhitespaceToken.CreateNonLiteral(Context, startLine, startColumn, Input.Line, Input.Column) else token := nil; end; procedure Tokenizer.DiscardPointer; begin ITokenProvider(FBuffer).DiscardPointer; end; function Tokenizer.get_Current: Token; begin if State = TokenizerState.Initializing then raise InvalidOperationException.Create('Before start'); Result := FCurrent; end; function Tokenizer.GetWhitespaceSequence: string; var sb: StringBuilder; begin if (Input.Sequence.Length > 0) and System.Char.IsWhiteSpace(Input.Sequence, 0) then begin sb := StringBuilder.Create; repeat sb.Append(Input.Sequence); until not Input.Next or not System.Char.IsWhiteSpace(Input.Sequence, 0); Result := sb.ToString; end else Result := ''; end; function Tokenizer.HasSavedPointer: Boolean; begin Result := ITokenProvider(FBuffer).HasSavedPointer; end; function Tokenizer.Next: Boolean; var nextToken: Token; begin if HasSavedPointer and ITokenProvider(Buffer).Next then begin Result := True; FCurrent := ITokenProvider(Buffer).Current; end else begin if State = TokenizerState.Initializing then begin Result := True; FCurrent := TokenizerStartToken.Create(FContext); if FInput.Next then FState := TokenizerState.Processing else FState := TokenizerState.Finalizing; end else if State = TokenizerState.Finalizing then begin Result := True; FCurrent := TokenizerEndToken.Create(FContext, Input.Line, Input.Column); FState := TokenizerState.Finalized; end else if State = TokenizerState.Processing then begin nextToken := InputToken; Result := nextToken <> nil; if Result then FCurrent := nextToken else begin Result := True; FCurrent := UnknownCharacterToken.Create(FContext, Input.Sequence, Input.Line, Input.Column); end; if Input.Sequence = '' then FState := TokenizerState.Finalizing; end else Result := False; if Result and HasSavedPointer then Buffer.Add(FCurrent); end end; procedure Tokenizer.RestorePointer; begin ITokenProvider(FBuffer).RestorePointer; end; procedure Tokenizer.SavePointer; begin ITokenProvider(FBuffer).SavePointer; end; {$ENDREGION} end. --- NEW FILE: Jedi.Text.Tokenization.InputBase.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.Text.Tokenization.InputBase.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet Known Issues: ---------------------------------------------------------------------------------------------------} // $Id: Jedi.Text.Tokenization.InputBase.pas,v 1.1 2005/09/25 11:27:26 jedi_mbe Exp $ unit Jedi.Text.Tokenization.InputBase; interface {$REGION 'uses'} uses Jedi.System.SourceVersioning, Jedi.System.Strings, System.Collections, System.IO, System.Text; {$ENDREGION} {$REGION 'Tokenizer input provider base class'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.InputBase.pas,v $', '$Revision: 1.1 $', '$Date: 2005/09/25 11:27:26 $')] TokenizerInputProvider = class abstract (&Object) {$REGION 'Constructors'} public constructor Create(tabSet: StringUtils.TabSet); {$ENDREGION} {$REGION 'Data'} strict private FBuffer: IList; FColumn: Integer; FIndex: Integer; FLine: Integer; FSavedInfos: Stack; FSequence: StringBuilder; FTabSet: StringUtils.TabSet; {$ENDREGION} {$REGION 'Abstract methods'} strict protected function PeekChar: Integer; virtual; abstract; function NextChar: Integer; virtual; abstract; {$ENDREGION} {$REGION 'Advance input'} public function Next: Boolean; {$ENDREGION} {$REGION 'Internal methods'} strict protected function ReadFromStack: Boolean; {$ENDREGION} {$REGION 'Location saving/restoring'} public procedure Discard; procedure Restore; procedure Save; {$ENDREGION} {$REGION 'Property accessors'} public function get_Sequence: string; {$ENDREGION} {$REGION 'Properties'} protected property Buffer: IList read FBuffer; public property Column: Integer read FColumn; property Line: Integer read FLine; property Sequence: string read get_Sequence; property TabSet: StringUtils.TabSet read FTabSet; {$ENDREGION} {$REGION 'TextReader-based input provider instantiation'} public class function FromReader(reader: TextReader): TokenizerInputProvider; overload; static; class function FromReader(reader: TextReader; tabSet: StringUtils.TabSet): TokenizerInputProvider; overload; static; {$ENDREGION} end; {$ENDREGION} implementation {$REGION 'TextReader-based tokenizer input provider class'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.InputBase.pas,v $', '$Revision: 1.1 $', '$Date: 2005/09/25 11:27:26 $')] ReaderProvider = class (TokenizerInputProvider) {$REGION 'Constructors'} public constructor Create(reader: TextReader; tabSet: StringUtils.TabSet); {$ENDREGION} {$REGION 'Data'} strict private FReader: TextReader; {$ENDREGION} {$REGION 'Overrides'} strict protected function PeekChar: Integer; override; function NextChar: Integer; override; {$ENDREGION} end; {$ENDREGION} {$REGION 'Saved location information record'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.InputBase.pas,v $', '$Revision: 1.1 $', '$Date: 2005/09/25 11:27:26 $')] SavedInfo = record {$REGION 'Constructors'} public constructor Create(provider: TokenizerInputProvider); {$ENDREGION} {$REGION 'Data'} strict private FColumn: Integer; FIndex: Integer; FLine: Integer; FSequence: string; {$ENDREGION} {$REGION 'Properties'} public property Column: Integer read FColumn; property &Index: Integer read FIndex; property Line: Integer read FLine; property Sequence: string read FSequence; {$ENDREGION} end; {$ENDREGION} {$REGION 'ReaderProvider'} constructor ReaderProvider.Create(reader: TextReader; tabSet: StringUtils.TabSet); begin inherited Create(tabSet); FReader := reader; end; function ReaderProvider.PeekChar: Integer; begin if FReader <> nil then Result := FReader.Peek else Result := -1; end; function ReaderProvider.NextChar: Integer; begin if FReader <> nil then begin Result := FReader.Read; if Result = -1 then begin FReader.Close; FReader := nil; end; end else Result := -1; end; {$ENDREGION} {$REGION 'SavedInfo'} constructor SavedInfo.Create(provider: TokenizerInputProvider); begin inherited Create; FColumn := provider.Column; FLine := provider.Line; FIndex := provider.Buffer.Count; FSequence := provider.Sequence; end; {$ENDREGION} {$REGION 'TokenizerInputProvider'} constructor TokenizerInputProvider.Create(tabSet: StringUtils.TabSet); begin inherited Create; FTabSet := tabSet; FColumn := -1; FLine := -1; FBuffer := ArrayList.Create; FSavedInfos := Stack.Create; FSequence := StringBuilder.Create; end; procedure TokenizerInputProvider.Discard; begin FSavedInfos.Pop; end; class function TokenizerInputProvider.FromReader(reader: TextReader): TokenizerInputProvider; begin Result := ReaderProvider.Create(reader, StringUtils.TabSet.Create); end; class function TokenizerInputProvider.FromReader(reader: TextReader; tabSet: StringUtils.TabSet): TokenizerInputProvider; begin Result := ReaderProvider.Create(reader, tabSet); end; function TokenizerInputProvider.get_Sequence: string; begin Result := FSequence.ToString; end; function TokenizerInputProvider.Next: Boolean; var cameFromStack: Boolean; ordinal: Integer; begin if FSequence.Length > 0 then begin if FSequence.Chars[0] = #9 then FColumn := FTabSet.TabFrom(FColumn) else if (FSequence.Chars[0] = #10) or (FSequence.Chars[0] = #13) then begin Inc(FLine); FColumn := 0; end else Inc(FColumn); end; FSequence.Length := 0; cameFromStack := ReadFromStack; if cameFromStack then begin FSequence.Append(string(Buffer[FIndex])); Inc(FIndex); end else begin ordinal := NextChar; if ordinal > -1 then begin FSequence.Append(System.Char(ordinal)); if ((ordinal = 10) and (PeekChar = 13)) or ((ordinal = 10) and (PeekChar = 13)) then FSequence.Append(System.Char(NextChar)); end; end; Result := FSequence.Length > 0; if Result and (FLine < 0) then begin FLine := 0; FColumn := 0; end; if Result and not cameFromStack and (FSavedInfos.Count > 0) then FBuffer.Add(FSequence.ToString); end; function TokenizerInputProvider.ReadFromStack: Boolean; begin Result := FIndex < FBuffer.Count; end; procedure TokenizerInputProvider.Restore; var state: SavedInfo; begin state := SavedInfo(FSavedInfos.Pop); FColumn := state.Column; FLine := state.Line; FSequence.Length := 0; FSequence.Append(state.Sequence); FIndex := state.Index; end; procedure TokenizerInputProvider.Save; begin FSavedInfos.Push(Self); end; {$ENDREGION} end. --- NEW FILE: Jedi.Text.Tokenization.TokenBase.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.Text.Tokenization.TokenBase.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet Known Issues: ---------------------------------------------------------------------------------------------------} // $Id: Jedi.Text.Tokenization.TokenBase.pas,v 1.1 2005/09/25 11:27:26 jedi_mbe Exp $ unit Jedi.Text.Tokenization.TokenBase; interface {$REGION 'uses'} uses Jedi.System.SourceVersioning, Jedi.System.Strings, System.Text; {$ENDREGION} {$REGION 'Token base class'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.TokenBase.pas,v $', '$Revision: 1.1 $', '$Date: 2005/09/25 11:27:26 $')] Token = class abstract (&Object) {$REGION 'Constructors'} strict protected constructor Create(context: &Object; line, column: Integer); {$ENDREGION} {$REGION 'Data'} strict private FContext: &Object; FColumn: Integer; FLine: Integer; {$ENDREGION} {$REGION 'Property accessors'} public function get_Literal: string; virtual; abstract; {$ENDREGION} {$REGION 'Properties'} public property Context: &Object read FContext; property Column: Integer read FColumn; property Line: Integer read FLine; property Literal: string read get_Literal; {$ENDREGION} end; {$ENDREGION} {$REGION 'Control tokens base class'} [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.TokenBase.pas,v $', '$Revision: 1.1 $', '$Date: 2005/09/25 11:27:26 $')] ControlToken = class abstract (Token) {$REGION 'Constructors'} strict protected constructor Create(context: &Object; line, column: Integer); {$ENDREGION} end; {$ENDREGION} {$REGION 'End of tokenizer token'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.TokenBase.pas,v $', '$Revision: 1.1 $', '$Date: 2005/09/25 11:27:26 $')] TokenizerEndToken = class sealed (ControlToken) {$REGION 'Constructors'} public constructor Create(context: &Object; line, column: Integer); {$ENDREGION} {$REGION 'Overrides'} public function get_Literal: string; override; {$ENDREGION} end; {$ENDREGION} {$REGION 'Start of tokenizer token'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.TokenBase.pas,v $', '$Revision: 1.1 $', '$Date: 2005/09/25 11:27:26 $')] TokenizerStartToken = class sealed (ControlToken) {$REGION 'Constructors'} public constructor Create(context: &Object); {$ENDREGION} {$REGION 'Overrides'} public function get_Literal: string; override; {$ENDREGION} end; {$ENDREGION} {$REGION 'Unknown character sequence token'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.TokenBase.pas,v $', '$Revision: 1.1 $', '$Date: 2005/09/25 11:27:26 $')] UnknownCharacterToken = class sealed (Token) {$REGION 'Constructors'} public constructor Create(context: &Object; sequence: string; line, column: Integer); {$ENDREGION} {$REGION 'Data'} strict private FSequence: string; {$ENDREGION} {$REGION 'Overrides'} public function get_Literal: string; override; {$ENDREGION} end; {$ENDREGION} {$REGION 'Whitespace token base class'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.TokenBase.pas,v $', '$Revision: 1.1 $', '$Date: 2005/09/25 11:27:26 $')] WhitespaceToken = class abstract (Token) {$REGION 'Constructors'} strict protected constructor Create(context: &Object; line, column: Integer); {$ENDREGION} {$REGION 'Property accessors'} public function get_IsNewline: Boolean; virtual; abstract; {$ENDREGION} {$REGION 'Properties'} public property IsNewline: Boolean read get_IsNewline; {$ENDREGION} {$REGION 'Whitespace token class instantiation methods'} public class function CreateLiteral(content: string; context: &Object; line, column: Integer): WhitespaceToken; static; class function CreateNonLiteral(context: &Object; line, column, endLine, endColumn: Integer): WhitespaceToken; static; {$ENDREGION} end; {$ENDREGION} implementation {$REGION 'Literal whitespace token class'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.TokenBase.pas,v $', '$Revision: 1.1 $', '$Date: 2005/09/25 11:27:26 $')] LiteralWhitespace = class (WhitespaceToken) {$REGION 'Constructors'} public constructor Create(content: string; context: &Object; line, column: Integer); {$ENDREGION} {$REGION 'Data'} strict private FContent: string; {$ENDREGION} {$REGION 'Overrides'} public function get_IsNewline: Boolean; override; function get_Literal: string; override; {$ENDREGION} end; {$ENDREGION} {$REGION 'Non-literal whitespace token class'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.TokenBase.pas,v $', '$Revision: 1.1 $', '$Date: 2005/09/25 11:27:26 $')] NonLiteralWhitespace = class (WhitespaceToken) {$REGION 'Constructors'} public constructor Create(context: &Object; line, column, endLine, endColumn: Integer); {$ENDREGION} {$REGION 'Data'} strict private FEndColumn: Integer; FEndLine: Integer; {$ENDREGION} {$REGION 'Overrides'} public function get_IsNewline: Boolean; override; function get_Literal: string; override; {$ENDREGION} end; {$ENDREGION} {$REGION 'ControlToken'} constructor ControlToken.Create(context: &Object; line, column: Integer); begin inherited Create(context, line, column); end; {$ENDREGION} {$REGION 'LiteralWhitespace'} constructor LiteralWhitespace.Create(content: string; context: &Object; line, column: Integer); begin inherited Create(context, line, column); FContent := content; end; function LiteralWhitespace.get_IsNewline: Boolean; begin Result := FContent.IndexOfAny([#10, #13]) > -1; end; function LiteralWhitespace.get_Literal: string; begin Result := FContent; end; {$ENDREGION} {$REGION 'NonLiteralWhitespace'} constructor NonLiteralWhitespace.Create(context: &Object; line, column, endLine, endColumn: Integer); begin inherited Create(context, line, column); FEndColumn := endColumn; FEndLine := endLine; end; function NonLiteralWhitespace.get_IsNewline: Boolean; begin Result := FEndLine > Line; end; function NonLiteralWhitespace.get_Literal: string; var sb: StringBuilder; i: Integer; col: Integer; begin sb := StringBuilder.Create; for i := Line + 1 to FEndLine do sb.Append(Environment.NewLine); if FEndLine > Line then col := 0 else col := Column; sb.Append(' ', FEndColumn - col); Result := sb.ToString; end; {$ENDREGION} {$REGION 'Token'} constructor Token.Create(context: &Object; line, column: Integer); begin inherited Create; FContext := context; FLine := line; FColumn := column; end; {$ENDREGION} {$REGION 'TokenizerEndToken'} constructor TokenizerEndToken.Create(context: &Object; line, column: Integer); begin inherited Create(context, line, column); end; function TokenizerEndToken.get_Literal: string; begin Result := ''; end; {$ENDREGION} {$REGION 'TokenizerStartToken'} constructor TokenizerStartToken.Create(context: &Object); begin inherited Create(context, -1, -1); end; function TokenizerStartToken.get_Literal: string; begin Result := ''; end; {$ENDREGION} {$REGION 'WhitespaceToken'} constructor WhitespaceToken.Create(context: &Object; line, column: Integer); begin inherited Create(context, line, column); end; class function WhitespaceToken.CreateLiteral(content: string; context: &Object; line, column: Integer): WhitespaceToken; begin Result := LiteralWhitespace.Create(content, context, line, column); end; class function WhitespaceToken.CreateNonLiteral(context: &Object; line, column, endLine, endColumn: Integer): WhitespaceToken; begin Result := NonLiteralWhitespace.Create(context, line, column, endLine, endColumn); end; {$ENDREGION} {$REGION 'Unknown character sequence token'} constructor UnknownCharacterToken.Create(context: &Object; sequence: string; line, column: Integer); begin inherited Create(context, line, column); FSequence := sequence; end; function UnknownCharacterToken.get_Literal: string; begin Result := FSequence; end; {$ENDREGION} end. --- NEW FILE: Jedi.Text.Tokenization.ProviderBase.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.Text.Tokenization.ProviderBase.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet Known Issues: ---------------------------------------------------------------------------------------------------} // $Id: Jedi.Text.Tokenization.ProviderBase.pas,v 1.1 2005/09/25 11:27:26 jedi_mbe Exp $ unit Jedi.Text.Tokenization.ProviderBase; interface {$REGION 'uses'} uses Jedi.System.SourceVersioning, Jedi.text.Tokenization.TokenBase, System.Collections; {$ENDREGION} {$REGION 'ITokenProvider interface'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.ProviderBase.pas,v $', '$Revision: 1.1 $', '$Date: 2005/09/25 11:27:26 $')] ITokenProvider = interface {$REGION 'Methods'} procedure DiscardPointer; function HasSavedPointer: Boolean; function Next: Boolean; procedure RestorePointer; procedure SavePointer; {$ENDREGION} {$REGION 'Property accessors'} function get_Current: Token; {$ENDREGION} {$REGION 'Properties'} property Current: Token read get_Current; {$ENDREGION} end; {$ENDREGION} {$REGION 'List token provider class'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Text.Tokenization.ProviderBase.pas,v $', '$Revision: 1.1 $', '$Date: 2005/09/25 11:27:26 $')] TokenList = class (&Object, ITokenProvider) {$REGION 'Constructors'} public constructor Create; {$ENDREGION} {$REGION 'Data'} strict private FIndex: Integer; FList: IList; FSavePoints: Stack; {$ENDREGION} {$REGION 'ITokenProvider methods'} strict protected procedure DiscardPointer; function get_Current: Token; function HasSavedPointer: Boolean; function Next: Boolean; procedure RestorePointer; procedure SavePointer; {$ENDREGION} {$REGION 'List management methods'} public procedure Add(token: Token); procedure Clear; {$ENDREGION} end; {$ENDREGION} implementation {$AUTOBOX ON} {$REGION 'TokenList'} constructor TokenList.Create; begin inherited Create; FIndex := -1; FList := ArrayList.Create; FSavePoints := Stack.Create; end; procedure TokenList.Add(token: Token); begin FList.Add(token); end; procedure TokenList.Clear; begin FList.Clear; end; procedure TokenList.DiscardPointer; begin FSavePoints.Pop; end; function TokenList.get_Current: Token; begin if FIndex < 0 then raise InvalidOperationException.Create('Before start.'); Result := Token(FList[FIndex]); end; function TokenList.HasSavedPointer: Boolean; begin Result := FSavePoints.Count > 0; end; function TokenList.Next: Boolean; begin Result := Succ(FIndex) < FList.Count; if Result then Inc(FIndex); end; procedure TokenList.RestorePointer; begin FIndex := Integer(FSavePoints.Pop); end; procedure TokenList.SavePointer; begin FSavePoints.Push(FIndex); end; {$ENDREGION} end. |
From: Marcel B. <jed...@us...> - 2005-09-25 11:26:51
|
Update of /cvsroot/jedidotnet/main/run In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24199/main/run Modified Files: Jedi.System.Strings.pas Log Message: ExpandTabs: added overloads to define starting column of input string Index: Jedi.System.Strings.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.System.Strings.pas,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Jedi.System.Strings.pas 14 Mar 2005 13:31:26 -0000 1.6 --- Jedi.System.Strings.pas 25 Sep 2005 11:26:16 -0000 1.7 *************** *** 176,181 **** public class function ExpandTabs(s: string; tabs: IntegerArray): string; overload; static; ! class function ExpandTabs(s: string; tabs: array of Integer; additionalTabsWidth: Int32): string; overload; static; class function ExpandTabs(s: string; tabSet: TabSet): string; overload; static; {$ENDREGION} end; --- 176,185 ---- public class function ExpandTabs(s: string; tabs: IntegerArray): string; overload; static; ! class function ExpandTabs(s: string; columnStart: Integer; tabs: IntegerArray): string; overload; static; ! class function ExpandTabs(s: string; tabs: IntegerArray; additionalTabsWidth: Int32): string; overload; static; ! class function ExpandTabs(s: string; columnStart: Integer; tabs: IntegerArray; ! additionalTabsWidth: Int32): string; overload; static; class function ExpandTabs(s: string; tabSet: TabSet): string; overload; static; + class function ExpandTabs(s: string; columnStart: Integer; tabSet: TabSet): string; overload; static; {$ENDREGION} end; *************** *** 384,396 **** class function StringUtils.ExpandTabs(s: string; tabs: array of Integer): string; begin ! Result := ExpandTabs(s, TabSet.Create(tabs)); end; class function StringUtils.ExpandTabs(s: string; tabs: array of Integer; additionalTabsWidth: Integer): string; begin ! Result := ExpandTabs(s, TabSet.Create(tabs, additionalTabsWidth)); end; class function StringUtils.ExpandTabs(s: string; tabSet: TabSet): string; var sb: StringBuilder; --- 388,416 ---- class function StringUtils.ExpandTabs(s: string; tabs: array of Integer): string; begin ! Result := ExpandTabs(s, 0, TabSet.Create(tabs)); ! end; ! ! class function StringUtils.ExpandTabs(s: string; columnStart: Integer; tabs: array of Integer): string; ! begin ! Result := ExpandTabs(s, columnStart, TabSet.Create(tabs)); end; class function StringUtils.ExpandTabs(s: string; tabs: array of Integer; additionalTabsWidth: Integer): string; begin ! Result := ExpandTabs(s, 0, TabSet.Create(tabs, additionalTabsWidth)); ! end; ! ! class function StringUtils.ExpandTabs(s: string; columnStart: Integer; tabs: array of Integer; ! additionalTabsWidth: Integer): string; ! begin ! Result := ExpandTabs(s, columnStart, TabSet.Create(tabs, additionalTabsWidth)); end; class function StringUtils.ExpandTabs(s: string; tabSet: TabSet): string; + begin + Result := ExpandTabs(s, 0, tabSet); + end; + + class function StringUtils.ExpandTabs(s: string; columnStart: Integer; tabSet: TabSet): string; var sb: StringBuilder; *************** *** 408,412 **** Inc(idx); startIndex := idx; ! idx := tabSet.TabFrom(sb.Length); sb.Append(' ', idx - sb.Length) end --- 428,432 ---- Inc(idx); startIndex := idx; ! idx := tabSet.TabFrom(columnStart + sb.Length); sb.Append(' ', idx - sb.Length) end |
From: Marcel B. <jed...@us...> - 2005-08-24 18:37:34
|
Update of /cvsroot/jedidotnet/main/run In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8932/main/run Modified Files: Jedi.Math.Evaluation.Namespaces.Generic.pas Log Message: Removed BOM Index: Jedi.Math.Evaluation.Namespaces.Generic.pas =================================================================== RCS file: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.Namespaces.Generic.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Jedi.Math.Evaluation.Namespaces.Generic.pas 22 Aug 2005 17:27:08 -0000 1.1 --- Jedi.Math.Evaluation.Namespaces.Generic.pas 24 Aug 2005 18:37:27 -0000 1.2 *************** *** 1,3 **** ! {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at --- 1,3 ---- ! {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at |
From: Marcel B. <jed...@us...> - 2005-08-24 18:36:52
|
Update of /cvsroot/jedidotnet/main/resources In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8732/main/resources Modified Files: Jedi.Math.resx Log Message: Removed BOM Index: Jedi.Math.resx =================================================================== RCS file: /cvsroot/jedidotnet/main/resources/Jedi.Math.resx,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Jedi.Math.resx 22 Aug 2005 17:26:05 -0000 1.1 --- Jedi.Math.resx 24 Aug 2005 18:36:41 -0000 1.2 *************** *** 1,3 **** ! <?xml version="1.0" encoding="utf-8"?> <root> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> --- 1,3 ---- ! <?xml version="1.0" encoding="utf-8"?> <root> <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> |
Update of /cvsroot/jedidotnet/main/run In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4816/main/run Added Files: Jedi.Math.Evaluation.Base.pas Jedi.Math.Evaluation.BinaryNodes.pas Jedi.Math.Evaluation.CompilingProcessor.pas Jedi.Math.Evaluation.EvalProcessor.pas Jedi.Math.Evaluation.Namespaces.Generic.pas Jedi.Math.Evaluation.TenaryNodes.pas Jedi.Math.Evaluation.Tokenization.pas Jedi.Math.Evaluation.Tokens.pas Jedi.Math.Evaluation.UnaryNodes.pas Jedi.Math.Evaluation.ValueNodes.pas Jedi.Math.Resources.pas Log Message: Expression parsing and evaluating --- NEW FILE: Jedi.Math.Evaluation.Tokenization.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.Math.Evaluation.Tokenization.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet Known Issues: ---------------------------------------------------------------------------------------------------} // $Id: Jedi.Math.Evaluation.Tokenization.pas,v 1.1 2005/08/22 17:27:08 jedi_mbe Exp $ unit Jedi.Math.Evaluation.Tokenization; interface {$REGION 'uses'} uses Jedi.System.SourceVersioning, Jedi.System.Strings, Jedi.Text.Tokenization.Base, System.Globalization, System.IO; {$ENDREGION} {$REGION 'Math lexer'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.Tokenization.pas,v $', '$Revision: 1.1 $', '$Date: 2005/08/22 17:27:08 $')] MathLexer = class (&Object, ITokenProvider) {$REGION 'Constructors'} strict protected constructor Create(tokenizer: ITokenizer); {$ENDREGION} {$REGION 'Data'} strict private FFromStack: Boolean; FList: ITokenProvider; FTokenizer: ITokenizer; {$ENDREGION} {$REGION 'ITokenProvider methods'} strict protected function get_Current: IToken; function Next: Boolean; procedure RestorePointer; procedure SavePointer; {$ENDREGION} {$REGION 'Static methods'} public class function Tokenize(s: string): ITokenProvider; overload; static; class function Tokenize(s: string; formatProvider: IFormatProvider): ITokenProvider; overload; static; class function Tokenize(reader: TextReader): ITokenProvider; overload; static; class function Tokenize(reader: TextReader; formatProvider: IFormatProvider): ITokenProvider; overload; static; class function Tokenize(reader: TextReader; ownsReader: Boolean): ITokenProvider; overload; static; class function Tokenize(reader: TextReader; ownsReader: Boolean; formatProvider: IFormatProvider): ITokenProvider; overload; static; {$ENDREGION} end; {$ENDREGION} {$REGION 'Math tokenizer'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.Tokenization.pas,v $', '$Revision: 1.1 $', '$Date: 2005/08/22 17:27:08 $')] MathTokenizer = class (TextTokenizer) {$REGION 'Constructors'} protected constructor Create(reader: TextReader; ownsReader: Boolean; formatProvider: IFormatProvider); {$ENDREGION} {$REGION 'Property accessors'} public function get_FormatProvider: IFormatProvider; {$ENDREGION} {$REGION 'Properties'} public property FormatProvider: IFormatProvider read get_FormatProvider; {$ENDREGION} end; {$ENDREGION} implementation {$REGION 'internal uses'} uses Jedi.Math.Evaluation.Tokens; {$ENDREGION} {$REGION 'MathLexer'} constructor MathLexer.Create(tokenizer: ITokenizer); begin inherited Create; FTokenizer := tokenizer; Next; // make sure we're properly intialized end; function MathLexer.get_Current: IToken; begin if FFromStack then Result := FList.Current else Result := ITokenProvider(FTokenizer).Current; end; function MathLexer.Next: Boolean; begin if FFromStack then Result := FList.Next else Result := False; if not Result then begin FFromStack := False; Result := TokenProviderUtils.Next(ITokenProvider(FTokenizer), [TypeOf(WhiteSpaceToken), TypeOf(ControlToken)]); end; if (FList <> nil) and not FFromStack and Result then TokenList(FList).AddToken(ITokenProvider(FTokenizer).Current); end; procedure MathLexer.RestorePointer; begin if (FList <> nil) and (TokenList(FList).CanRestorePointer) then begin FList.RestorePointer; FFromStack := True; end; end; procedure MathLexer.SavePointer; begin if FList = nil then FList := TokenList.Create; FList.SavePointer; end; class function MathLexer.Tokenize(s: string): ITokenProvider; begin Result := Tokenize(StringReader.Create(s), True, NumberFormatInfo.InvariantInfo); end; class function MathLexer.Tokenize(s: string; formatProvider: IFormatProvider): ITokenProvider; begin Result := Tokenize(StringReader.Create(s), True, formatProvider); end; class function MathLexer.Tokenize(reader: TextReader): ITokenProvider; begin Result := Tokenize(reader, True, NumberFormatInfo.InvariantInfo); end; class function MathLexer.Tokenize(reader: TextReader; formatProvider: IFormatProvider): ITokenProvider; begin Result := Tokenize(reader, True, formatProvider); end; class function MathLexer.Tokenize(reader: TextReader; ownsReader: Boolean): ITokenProvider; begin Result := Tokenize(reader, ownsReader, NumberFormatInfo.InvariantInfo); end; class function MathLexer.Tokenize(reader: TextReader; ownsReader: Boolean; formatProvider: IFormatProvider): ITokenProvider; begin Result := MathLexer.Create(MathTokenizer.Create(reader, ownsReader, formatProvider)); end; {$ENDREGION} {$REGION 'MathTokenizer'} constructor MathTokenizer.Create(reader: TextReader; ownsReader: Boolean; formatProvider: IFormatProvider); begin inherited Create(reader, ownsReader, MathTokenSet.Default, StringUtils.TabSet.Create(2), formatProvider); end; function MathTokenizer.get_FormatProvider: IFormatProvider; begin Result := IFormatProvider(Context); end; {$ENDREGION} end. --- NEW FILE: Jedi.Math.Evaluation.ValueNodes.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.Math.Evaluation.ValueNodes.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet Known Issues: ---------------------------------------------------------------------------------------------------} // $Id: Jedi.Math.Evaluation.ValueNodes.pas,v 1.1 2005/08/22 17:27:08 jedi_mbe Exp $ unit Jedi.Math.Evaluation.ValueNodes; interface {$REGION 'uses'} uses Jedi.Math.Evaluation.Base, Jedi.Math.Evaluation.CompilingProcessor, Jedi.System.SourceVersioning, System.Collections; {$ENDREGION} {$REGION 'Symbol expression node'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.ValueNodes.pas,v $', '$Revision: 1.1 $', '$Date: 2005/08/22 17:27:08 $')] SymbolExpressionNode = class abstract (ExpressionNode) {$REGION 'Constructors'} strict protected constructor Create(symbol: Symbol); {$ENDREGION} {$REGION 'Data'} strict private FSymbol: Symbol; {$ENDREGION} {$REGION 'Overrides'} public function get_Literal: string; override; function get_Precedence: Integer; override; {$ENDREGION} {$REGION 'Properties'} strict protected property Symbol: Symbol read FSymbol; {$ENDREGION} end; {$ENDREGION} {$REGION 'Immediate expression node'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.ValueNodes.pas,v $', '$Revision: 1.1 $', '$Date: 2005/08/22 17:27:08 $')] ImmediateExpressionNode = class (ExpressionNode) {$REGION 'Constructors'} public constructor Create(value: Double); {$ENDREGION} {$REGION 'Data'} strict private FValue: Double; {$ENDREGION} {$REGION 'Overrides'} public function Execute: Double; override; function get_Literal: string; override; function get_Precedence: Integer; override; {$ENDREGION} end; {$ENDREGION} {$REGION 'Constant expression node'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.ValueNodes.pas,v $', '$Revision: 1.1 $', '$Date: 2005/08/22 17:27:08 $')] ConstantExpressionNode = class (SymbolExpressionNode) {$REGION 'Constructors'} public constructor Create(constant: Constant); {$ENDREGION} {$REGION 'Overrides'} public function Execute: Double; override; {$ENDREGION} {$REGION 'Property accessors'} public function get_Constant: Constant; {$ENDREGION} {$REGION 'Properties'} public property Constant: Constant read get_Constant; {$ENDREGION} end; {$ENDREGION} {$REGION 'Function expression node'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.ValueNodes.pas,v $', '$Revision: 1.1 $', '$Date: 2005/08/22 17:27:08 $')] FunctionExpressionNode = class (SymbolExpressionNode) {$REGION 'Constructors'} public constructor Create(&function: &Function; args: array of ExpressionNode); {$ENDREGION} {$REGION 'Overrides'} public function Execute: Double; override; {$ENDREGION} {$REGION 'Property accessors'} public function get_Function: &Function; {$ENDREGION} {$REGION 'Properties'} public property &Function: &Function read get_Function; {$ENDREGION} end; {$ENDREGION} {$REGION 'Variable expression node'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.ValueNodes.pas,v $', '$Revision: 1.1 $', '$Date: 2005/08/22 17:27:08 $')] VariableExpressionNode = class (SymbolExpressionNode) {$REGION 'Constructors'} public constructor Create(variable: Variable); {$ENDREGION} {$REGION 'Overrides'} public function Execute: Double; override; {$ENDREGION} {$REGION 'Property accessors'} public function get_Variable: Variable; {$ENDREGION} {$REGION 'Properties'} public property Variable: Variable read get_Variable; {$ENDREGION} end; {$ENDREGION} implementation {$AUTOBOX ON} {$REGION 'ConstantExpressionNode'} constructor ConstantExpressionNode.Create(constant: Constant); begin inherited Create(constant); end; function ConstantExpressionNode.Execute: Double; begin Result := Jedi.Math.Evaluation.Base.Constant(Symbol).Value; end; function ConstantExpressionNode.get_Constant: Constant; begin Result := Jedi.Math.Evaluation.Base.Constant(Symbol); end; {$ENDREGION} {$REGION 'FunctionExpressionNode'} constructor FunctionExpressionNode.Create(&function: &Function; args: array of ExpressionNode); var node: ExpressionNode; begin inherited Create(&function); for node in args do Add(node); end; function FunctionExpressionNode.Execute: Double; var evaluatedArgs: ArrayList; node: &Object; begin evaluatedArgs := ArrayList.Create(ChildNodes.Count); for node in ChildNodes do evaluatedArgs.Add(ExpressionNode(node).Execute); Result := Jedi.Math.Evaluation.Base.Function(Symbol).Evaluate(evaluatedArgs.ToArray); end; function FunctionExpressionNode.get_Function: &Function; begin Result := Jedi.Math.Evaluation.Base.Function(Symbol); end; {$ENDREGION} {$REGION 'ImmediateExpressionNode'} constructor ImmediateExpressionNode.Create(value: Double); begin inherited Create(ExpressionNodeArray.Create()); FValue := value; end; function ImmediateExpressionNode.Execute: Double; begin Result := FValue; end; function ImmediateExpressionNode.get_Literal: string; begin Result := FValue.ToString; end; function ImmediateExpressionNode.get_Precedence: Integer; begin Result := 0; end; {$ENDREGION} {$REGION 'SymbolExpressionNode'} constructor SymbolExpressionNode.Create(symbol: Symbol); begin inherited Create(ExpressionNodeArray.Create()); FSymbol := symbol; end; function SymbolExpressionNode.get_Literal: string; begin Result := FSymbol.Name; end; function SymbolExpressionNode.get_Precedence: Integer; begin Result := 0; end; {$ENDREGION} {$REGION 'VariableExpressionNode'} constructor VariableExpressionNode.Create(variable: Variable); begin inherited Create(variable); end; function VariableExpressionNode.Execute: Double; begin Result := Jedi.Math.Evaluation.Base.Variable(Symbol).Value; end; function VariableExpressionNode.get_Variable: Variable; begin Result := Jedi.Math.Evaluation.Base.Variable(Symbol); end; {$ENDREGION} end. --- NEW FILE: Jedi.Math.Resources.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.Math.Resources.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet Known Issues: ---------------------------------------------------------------------------------------------------} // $Id: Jedi.Math.Resources.pas,v 1.1 2005/08/22 17:27:08 jedi_mbe Exp $ unit Jedi.Math.Resources; interface {$REGION 'uses'} uses Jedi.System.SourceVersioning, Jedi.Text.Tokenization.Base, System.Globalization, System.Resources; {$ENDREGION} {$REGION 'Helper types'} type ObjectArray = array of &Object; {$ENDREGION} {$REGION 'Jedi.Math resources'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Math.Resources.pas,v $', '$Revision: 1.1 $', '$Date: 2005/08/22 17:27:08 $')] Resources = class abstract (&Object) {$REGION 'Constructors'} strict private class constructor Create; strict protected constructor Create; {$ENDREGION} {$REGION 'Data'} strict private class var rm: ResourceManager; {$ENDREGION} {$REGION 'Basic string retrieval'} public class function GetResourceString(id: string): string; overload; static; class function GetResourceString(culture: CultureInfo; id: string): string; overload; static; class function GetResourceString(id: string; arg0: &Object): string; overload; static; class function GetResourceString(culture: CultureInfo; id: string; arg0: &Object): string; overload; static; class function GetResourceString(id: string; arg0, arg1: &Object): string; overload; static; class function GetResourceString(culture: CultureInfo; id: string; arg0, arg1: &Object): string; overload; static; class function GetResourceString(id: string; arg0, arg1, arg2: &Object): string; overload; static; class function GetResourceString(culture: CultureInfo; id: string; arg0, arg1, arg2: &Object): string; overload; static; class function GetResourceString(id: string; args: ObjectArray): string; overload; static; class function GetResourceString(culture: CultureInfo; id: string; args: ObjectArray): string; overload; static; {$ENDREGION} {$REGION 'Helper methods'} strict protected class function ParserExpectedMsg(culture: CultureInfo; currentToken: IToken; expectedId: string; args: ObjectArray): string; static; {$ENDREGION} {$REGION 'Parser exception messages'} public class function ParserExpectedClosingParenthesis(currentToken, openParenthesis: IToken): string; overload; static; class function ParserExpectedClosingParenthesis(culture: CultureInfo; currentToken, openParenthesis: IToken): string; overload; static; class function ParserExpectedConditionalValueSeparator(currentToken: IToken): string; overload; static; class function ParserExpectedConditionalValueSeparator(culture: CultureInfo; currentToken: IToken): string; overload; static; class function ParserExpectedArgumentSeparator(currentToken: IToken): string; overload; static; class function ParserExpectedArgumentSeparator(culture: CultureInfo; currentToken: IToken): string; overload; static; class function ParserExpectedPrimary(currentToken: IToken): string; overload; static; class function ParserExpectedPrimary(culture: CultureInfo; currentToken: IToken): string; overload; static; class function ParserUnknownIdentifier(currentToken: IToken): string; overload; static; class function ParserUnknownIdentifier(culture: CultureInfo; currentToken: IToken): string; overload; static; {$ENDREGION} end; {$ENDREGION} implementation {$AUTOBOX ON} {$REGION 'Resources'} class constructor Resources.Create; begin rm := ResourceManager.Create('Jedi.Math', TypeOf(Resources).Assembly); end; constructor Resources.Create; begin inherited Create; end; class function Resources.GetResourceString(id: string): string; begin Result := GetResourceString(CultureInfo.CurrentCulture, id); end; class function Resources.GetResourceString(culture: CultureInfo; id: string): string; begin Result := rm.GetString(id, culture); end; class function Resources.GetResourceString(id: string; arg0: &Object): string; begin Result := System.String.Format(GetResourceString(CultureInfo.CurrentCulture, id), arg0); end; class function Resources.GetResourceString(culture: CultureInfo; id: string; arg0: &Object): string; begin Result := System.String.Format(GetResourceString(culture, id), arg0); end; class function Resources.GetResourceString(id: string; arg0, arg1: &Object): string; begin Result := System.String.Format(GetResourceString(CultureInfo.CurrentCulture, id), arg0, arg1); end; class function Resources.GetResourceString(culture: CultureInfo; id: string; arg0, arg1: &Object): string; begin Result := System.String.Format(GetResourceString(culture, id), arg0, arg1); end; class function Resources.GetResourceString(id: string; arg0, arg1, arg2: &Object): string; begin Result := System.String.Format(GetResourceString(CultureInfo.CurrentCulture, id), arg0, arg1, arg2); end; class function Resources.GetResourceString(culture: CultureInfo; id: string; arg0, arg1, arg2: &Object): string; begin Result := System.String.Format(GetResourceString(culture, id), arg0, arg1, arg2); end; class function Resources.GetResourceString(id: string; args: array of &Object): string; begin Result := System.String.Format(GetResourceString(CultureInfo.CurrentCulture, id), args); end; class function Resources.GetResourceString(culture: CultureInfo; id: string; args: array of &Object): string; begin Result := System.String.Format(GetResourceString(culture, id), args); end; class function Resources.ParserExpectedClosingParenthesis(currentToken, openParenthesis: IToken): string; begin Result := ParserExpectedClosingParenthesis(CultureInfo.CurrentCulture, currentToken, openParenthesis); end; class function Resources.ParserExpectedClosingParenthesis(culture: CultureInfo; currentToken, openParenthesis: IToken): string; begin Result := GetResourceString(culture, 'ParserExpBase', GetResourceString(culture, 'ParserExpClosePar', openParenthesis.Line, openParenthesis.Column), currentToken.Line, currentToken.Column) end; class function Resources.ParserExpectedConditionalValueSeparator(currentToken: IToken): string; begin Result := ParserExpectedConditionalValueSeparator(CultureInfo.CurrentCulture, currentToken); end; class function Resources.ParserExpectedConditionalValueSeparator(culture: CultureInfo; currentToken: IToken): string; begin Result := ParserExpectedMsg(culture, currentToken, 'ParserExpCondValueSep', nil); end; class function Resources.ParserExpectedArgumentSeparator(currentToken: IToken): string; begin Result := ParserExpectedArgumentSeparator(CultureInfo.CurrentCulture, currentToken); end; class function Resources.ParserExpectedArgumentSeparator(culture: CultureInfo; currentToken: IToken): string; begin Result := ParserExpectedMsg(culture, currentToken, 'parserExpArgSep', nil); end; class function Resources.ParserExpectedMsg(culture: CultureInfo; currentToken: IToken; expectedId: string; args: ObjectArray): string; begin if currentToken <> nil then Result := GetResourceString(culture, 'ParserExpBase', GetResourceString(culture, expectedId, args), currentToken.Line, currentToken.Column) else Result := GetResourceString(culture, 'ParserExpBase', GetResourceString(culture, expectedId, args), '?', '?'); end; class function Resources.ParserExpectedPrimary(currentToken: IToken): string; begin Result := ParserExpectedPrimary(CultureInfo.CurrentCulture, currentToken); end; class function Resources.ParserExpectedPrimary(culture: CultureInfo; currentToken: IToken): string; begin Result := ParserExpectedMsg(culture, currentToken, 'ParserExpPrimary', nil); end; class function Resources.ParserUnknownIdentifier(currentToken: IToken): string; begin Result := ParserUnknownIdentifier(CultureInfo.InvariantCulture, currentToken); end; class function Resources.ParserUnknownIdentifier(culture: CultureInfo; currentToken: IToken): string; begin Result := GetResourceString(culture, 'ParserUnknownIdent', currentToken.Literal, currentToken.Line, currentToken.Column); end; {$ENDREGION} end. --- NEW FILE: Jedi.Math.Evaluation.BinaryNodes.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.Math.Evaluation.BinaryNodes.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet [...979 lines suppressed...] end; function XorExpressionNode.get_Literal: string; begin Result := '^'; end; function XorExpressionNode.Execute: Double; var boolState: Boolean; node: ExpressionNode; begin boolState := False; for node in ChildNodes do boolState := boolState xor (node.Execute <> 0); Result := LogicalExpressionNode.MakeLogical(boolState); end; {$ENDREGION} end. --- NEW FILE: Jedi.Math.Evaluation.TenaryNodes.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.Math.Evaluation.TenaryNodes.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet Known Issues: ---------------------------------------------------------------------------------------------------} // $Id: Jedi.Math.Evaluation.TenaryNodes.pas,v 1.1 2005/08/22 17:27:08 jedi_mbe Exp $ unit Jedi.Math.Evaluation.TenaryNodes; interface {$REGION 'uses'} uses Jedi.Math.Evaluation.Base, Jedi.Math.Evaluation.CompilingProcessor, Jedi.System.SourceVersioning; {$ENDREGION} {$REGION 'Condition expression node'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.TenaryNodes.pas,v $', '$Revision: 1.1 $', '$Date: 2005/08/22 17:27:08 $')] ConditionExpressionNode = class (ExpressionNode) {$REGION 'Constructors'} public constructor Create(condition: ExpressionNode); {$ENDREGION} {$REGION 'Overrides'} public function get_IsLeftAssociative: Boolean; override; function get_Literal: string; override; function get_Precedence: Integer; override; function Execute: Double; override; {$ENDREGION} {$REGION 'Property accessors'} public function get_Condition: ExpressionNode; function get_False: ExpressionNode; function get_True: ExpressionNode; {$ENDREGION} {$REGION 'Properties'} public property Condition: ExpressionNode read get_Condition; property &False: ExpressionNode read get_False; property &True: ExpressionNode read get_True; {$ENDREGION} end; {$ENDREGION} implementation {$REGION 'ConditionExpressionNode'} constructor ConditionExpressionNode.Create(condition: ExpressionNode); begin inherited Create(ExpressionNodeArray.Create(condition)); end; function ConditionExpressionNode.Execute: Double; begin if Condition.Execute <> 0 then Result := True.Execute else Result := False.Execute; end; function ConditionExpressionNode.get_Condition: ExpressionNode; begin Result := ExpressionNode(ChildNodes[0]); end; function ConditionExpressionNode.get_False: ExpressionNode; begin Result := ExpressionNode(ChildNodes[2]); end; function ConditionExpressionNode.get_IsLeftAssociative: Boolean; begin Result := Borland.Delphi.System.False; end; function ConditionExpressionNode.get_Literal: string; begin Result := '?'; end; function ConditionExpressionNode.get_Precedence: Integer; begin Result := 8; end; function ConditionExpressionNode.get_True: ExpressionNode; begin Result := ExpressionNode(ChildNodes[1]); end; {$ENDREGION} end. --- NEW FILE: Jedi.Math.Evaluation.Namespaces.Generic.pas --- (This appears to be a binary file; contents omitted.) --- NEW FILE: Jedi.Math.Evaluation.UnaryNodes.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.Math.Evaluation.UnaryNodes.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet Known Issues: ---------------------------------------------------------------------------------------------------} // $Id: Jedi.Math.Evaluation.UnaryNodes.pas,v 1.1 2005/08/22 17:27:08 jedi_mbe Exp $ unit Jedi.Math.Evaluation.UnaryNodes; interface {$REGION 'uses'} uses Jedi.Math.Evaluation.Base, Jedi.Math.Evaluation.BinaryNodes, Jedi.Math.Evaluation.CompilingProcessor, Jedi.System.SourceVersioning; {$ENDREGION} {$REGION 'Unary expression node'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.UnaryNodes.pas,v $', '$Revision: 1.1 $', '$Date: 2005/08/22 17:27:08 $')] UnaryExpressionNode = class abstract (ExpressionNode) {$REGION 'Constructors'} strict protected constructor Create(operand: ExpressionNode); {$ENDREGION} end; {$ENDREGION} {$REGION 'Logical negate expression node'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.UnaryNodes.pas,v $', '$Revision: 1.1 $', '$Date: 2005/08/22 17:27:08 $')] LogicalNegateExpressionNode = class (UnaryExpressionNode) {$REGION 'Constructors'} public constructor Create(operand: ExpressionNode); {$ENDREGION} {$REGION 'Overrides'} public function Execute: Double; override; function get_Literal: string; override; function get_Precedence: Integer; override; {$ENDREGION} end; {$ENDREGION} {$REGION 'Negate expression node'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.UnaryNodes.pas,v $', '$Revision: 1.1 $', '$Date: 2005/08/22 17:27:08 $')] NegateExpressionNode = class (UnaryExpressionNode) {$REGION 'Constructors'} public constructor Create(operand: ExpressionNode); {$ENDREGION} {$REGION 'Overrides'} public function Execute: Double; override; function get_Literal: string; override; function get_Precedence: Integer; override; {$ENDREGION} end; {$ENDREGION} implementation {$REGION 'LogicalNegateExpressionNode'} constructor LogicalNegateExpressionNode.Create(operand: ExpressionNode); begin inherited Create(operand); end; function LogicalNegateExpressionNode.Execute: Double; begin Result := LogicalExpressionNode.MakeLogical(ExpressionNode(ChildNodes[0]).Execute = 0); end; function LogicalNegateExpressionNode.get_Literal: string; begin Result := '!'; end; function LogicalNegateExpressionNode.get_Precedence: Integer; begin Result := 1; end; {$ENDREGION} {$REGION 'NegateExpressionNode'} constructor NegateExpressionNode.Create(operand: ExpressionNode); begin inherited Create(operand); end; function NegateExpressionNode.Execute: Double; begin Result := -ExpressionNode(ChildNodes[0]).Execute; end; function NegateExpressionNode.get_Literal: string; begin Result := '-'; end; function NegateExpressionNode.get_Precedence: Integer; begin Result := 1; end; {$ENDREGION} {$REGION 'UnaryExpressionNode'} constructor UnaryExpressionNode.Create(operand: ExpressionNode); begin inherited Create(ExpressionNodeArray.Create(operand)); end; {$ENDREGION} end. --- NEW FILE: Jedi.Math.Evaluation.Base.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.Math.Evaluation.Base.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet [...1330 lines suppressed...] FName := name; end; function Variable.get_Name: string; begin Result := FName; end; function Variable.get_Namespace: Namespace; begin Result := FNamespace; end; procedure Variable.SetNamespace(ns: Namespace); begin FNamespace := ns; end; {$ENDREGION} end. --- NEW FILE: Jedi.Math.Evaluation.Tokens.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.Math.Evaluation.Tokens.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet [...1549 lines suppressed...] end; class function XorToken.CheckAndCreate(tokenizer: ITokenizer; out usedLength: Integer): IToken; begin if tokenizer.CurrentLine.StartsWith('^') then begin usedLength := 1; Result := XorToken.Create(tokenizer); end else Result := nil; end; function XorToken.Literal: string; begin Result := '^'; end; {$ENDREGION} end. --- NEW FILE: Jedi.Math.Evaluation.EvalProcessor.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.Math.Evaluation.EvalProcessor.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet Known Issues: ---------------------------------------------------------------------------------------------------} // $Id: Jedi.Math.Evaluation.EvalProcessor.pas,v 1.1 2005/08/22 17:27:08 jedi_mbe Exp $ unit Jedi.Math.Evaluation.EvalProcessor; interface {$REGION 'uses'} uses Jedi.Math.Evaluation.Base, Jedi.System.SourceVersioning; {$ENDREGION} {$REGION 'Evaluating processor'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.EvalProcessor.pas,v $', '$Revision: 1.1 $', '$Date: 2005/08/22 17:27:08 $')] EvaluatingProcessor = class (ExpressionProcessor) {$REGION 'Constructors'} strict protected constructor Create; {$ENDREGION} {$REGION 'Data'} strict private class var FDefault: EvaluatingProcessor; {$ENDREGION} {$REGION 'Overrides'} protected function Add(left, right: &Object): &Object; override; function CallFunction(func: &Function; args: ObjectArray): &Object; override; function Divide(left, right: &Object): &Object; override; function Equal(left, right: &Object): &Object; override; function GreaterThan(left, right: &Object): &Object; override; function GreaterThanOrEqual(left, right: &Object): &Object; override; function LeftShift(left, right: &Object): &Object; override; function LessThan(left, right: &Object): &Object; override; function LessThanOrEqual(left, right: &Object): &Object; override; function LoadConstant(&const: Constant): &Object; override; function LoadImmediate(value: Double): &Object; override; function LoadVariable(&var: Variable): &Object; override; function LogicalAnd(left, right: &Object; conditional: Boolean): &Object; override; function LogicalNot(operand: &Object): &Object; override; function LogicalOr(left, right: &Object; conditional: Boolean): &Object; override; function LogicalXor(left, right: &Object): &Object; override; function Multiply(left, right: &Object): &Object; override; function Negate(operand: &Object): &Object; override; function NotEqual(left, right: &Object): &Object; override; function ProcessConditional(condition: &Object; out skipTrue, skipFalse: Boolean): &Object; override; function ProcessConditionalFalseValue(conditional: &Object; value: &Object): &Object; override; function ProcessConditionalTrueValue(conditional: &Object; value: &Object): &Object; override; function RightShift(left, right: &Object): &Object; override; function SkipLogicalAnd(current: &Object): Boolean; override; function SkipLogicalOr(current: &Object): Boolean; override; function Subtract(left, right: &Object): &Object; override; {$ENDREGION} {$REGION 'Static methods'} public class function Default: ExpressionProcessor; static; {$ENDREGION} end; {$ENDREGION} implementation {$AUTOBOX ON} {$REGION 'EvaluatingProcessor'} constructor EvaluatingProcessor.Create; begin inherited Create; end; function EvaluatingProcessor.Add(left, right: &Object): &Object; begin Result := Double(left) + Double(right); end; function EvaluatingProcessor.CallFunction(func: &Function; args: ObjectArray): &Object; begin Result := func.Evaluate(args); end; class function EvaluatingProcessor.Default: ExpressionProcessor; begin if FDefault = nil then FDefault := EvaluatingProcessor.Create; Result := FDefault; end; function EvaluatingProcessor.Divide(left, right: &Object): &Object; begin Result := Double(left) / Double(right); end; function EvaluatingProcessor.Equal(left, right: &Object): &Object; begin if Double(left) = Double(right) then Result := 1.0 else Result := 0.0; end; function EvaluatingProcessor.GreaterThan(left, right: &Object): &Object; begin if Double(left) > Double(right) then Result := 1.0 else Result := 0.0; end; function EvaluatingProcessor.GreaterThanOrEqual(left, right: &Object): &Object; begin if Double(left) >= Double(right) then Result := 1.0 else Result := 0.0; end; function EvaluatingProcessor.LeftShift(left, right: &Object): &Object; begin Result := System.Convert.ToDouble(Trunc(Double(left)) shl Trunc(Double(right))); end; function EvaluatingProcessor.LessThan(left, right: &Object): &Object; begin if Double(left) < Double(right) then Result := 1.0 else Result := 0.0; end; function EvaluatingProcessor.LessThanOrEqual(left, right: &Object): &Object; begin if Double(left) <= Double(right) then Result := 1.0 else Result := 0.0; end; function EvaluatingProcessor.LoadConstant(&const: Constant): &Object; begin Result := Double(&const.Value); end; function EvaluatingProcessor.LoadImmediate(value: Double): &Object; begin Result := value; end; function EvaluatingProcessor.LoadVariable(&var: Variable): &Object; begin Result := &Double(&var.Value); end; function EvaluatingProcessor.LogicalAnd(left, right: &Object; conditional: Boolean): &Object; begin if (Double(left) <> 0) and (Double(right) <> 0) then Result := 1.0 else Result := 0.0; end; function EvaluatingProcessor.LogicalNot(operand: &Object): &Object; begin if Double(operand) = 0 then Result := 1.0 else Result := 0.0; end; function EvaluatingProcessor.LogicalOr(left, right: &Object; conditional: Boolean): &Object; begin if (Double(left) <> 0) or (Double(right) <> 0) then Result := 1.0 else Result := 0.0; end; function EvaluatingProcessor.LogicalXor(left, right: &Object): &Object; begin if (Double(left) <> 0) xor (Double(right) <> 0) then Result := 1.0 else Result := 0.0; end; function EvaluatingProcessor.Multiply(left, right: &Object): &Object; begin Result := Double(left) * Double(right); end; function EvaluatingProcessor.Negate(operand: &Object): &Object; begin Result := -Double(operand); end; function EvaluatingProcessor.NotEqual(left, right: &Object): &Object; begin if Double(left) <> Double(right) then Result := 1.0 else Result := 0.0; end; function EvaluatingProcessor.ProcessConditional(condition: &Object; out skipTrue, skipFalse: Boolean): &Object; begin skipTrue := Double(condition) = 0; skipFalse := not skipTrue; Result := condition; end; function EvaluatingProcessor.ProcessConditionalFalseValue(conditional: &Object; value: &Object): &Object; begin Result := value; end; function EvaluatingProcessor.ProcessConditionalTrueValue(conditional: &Object; value: &Object): &Object; begin Result := value; end; function EvaluatingProcessor.RightShift(left, right: &Object): &Object; begin Result := System.Convert.ToDouble(Trunc(Double(left)) shr Trunc(Double(right))); end; function EvaluatingProcessor.SkipLogicalAnd(current: &Object): Boolean; begin Result := Double(current) = 0; end; function EvaluatingProcessor.SkipLogicalOr(current: &Object): Boolean; begin Result := Double(current) <> 0; end; function EvaluatingProcessor.Subtract(left, right: &Object): &Object; begin Result := Double(left) - Double(right); end; {$ENDREGION} end. --- NEW FILE: Jedi.Math.Evaluation.CompilingProcessor.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.Math.Evaluation.CompilingProcessor.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet Known Issues: ---------------------------------------------------------------------------------------------------} // $Id: Jedi.Math.Evaluation.CompilingProcessor.pas,v 1.1 2005/08/22 17:27:08 jedi_mbe Exp $ unit Jedi.Math.Evaluation.CompilingProcessor; interface {$REGION 'uses'} uses Jedi.Math.Evaluation.Base, Jedi.System.SourceVersioning, System.Collections; {$ENDREGION} {$REGION 'Compiling processor'} type [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.CompilingProcessor.pas,v $', '$Revision: 1.1 $', '$Date: 2005/08/22 17:27:08 $')] CompilingProcessor = class (ExpressionProcessor) {$REGION 'Constructors'} strict protected constructor Create; {$ENDREGION} {$REGION 'Data'} strict private class var FDefault: CompilingProcessor; {$ENDREGION} {$REGION 'Overrides'} protected function Add(left, right: &Object): &Object; override; function CallFunction(func: &Function; args: ObjectArray): &Object; override; function Divide(left, right: &Object): &Object; override; function Equal(left, right: &Object): &Object; override; function GreaterThan(left, right: &Object): &Object; override; function GreaterThanOrEqual(left, right: &Object): &Object; override; function LeftShift(left, right: &Object): &Object; override; function LessThan(left, right: &Object): &Object; override; function LessThanOrEqual(left, right: &Object): &Object; override; function LoadConstant(&const: Constant): &Object; override; function LoadImmediate(value: Double): &Object; override; function LoadVariable(&var: Variable): &Object; override; function LogicalAnd(left, right: &Object; conditional: Boolean): &Object; override; function LogicalNot(operand: &Object): &Object; override; function LogicalOr(left, right: &Object; conditional: Boolean): &Object; override; function LogicalXor(left, right: &Object): &Object; override; function Multiply(left, right: &Object): &Object; override; function Negate(operand: &Object): &Object; override; function NotEqual(left, right: &Object): &Object; override; function ProcessConditional(condition: &Object; out skipTrue, skipFalse: Boolean): &Object; override; function ProcessConditionalFalseValue(conditional: &Object; value: &Object): &Object; override; function ProcessConditionalTrueValue(conditional: &Object; value: &Object): &Object; override; function RightShift(left, right: &Object): &Object; override; function SkipLogicalAnd(current: &Object): Boolean; override; function SkipLogicalOr(current: &Object): Boolean; override; function Subtract(left, right: &Object): &Object; override; {$ENDREGION} {$REGION 'Static methods'} public class function Default: ExpressionProcessor; static; {$ENDREGION} end; {$ENDREGION} {$REGION 'Expression node'} type ExpressionNode = class; ExpressionNodeArray = array of ExpressionNode; [JediSourceInfo( '$Source: /cvsroot/jedidotnet/main/run/Jedi.Math.Evaluation.CompilingProcessor.pas,v $', '$Revision: 1.1 $', '$Date: 2005/08/22 17:27:08 $')] ExpressionNode = class abstract (&Object) {$REGION 'Constructors'} strict protected constructor Create(nodes: ExpressionNodeArray); {$ENDREGION} {$REGION 'Data'} strict private FChildNodes: IList; {$ENDREGION} {$REGION 'Public methods'} public procedure Add(value: ExpressionNode); function Execute: Double; virtual; abstract; procedure Remove(value: ExpressionNode); procedure RemoveAt(index: Integer); {$ENDREGION} {$REGION 'Property accessors'} public function get_Count: Integer; function get_IsLeftAssociative: Boolean; virtual; function get_Literal: string; virtual; abstract; function get_Nodes(index: Integer): ExpressionNode; function get_Precedence: Integer; virtual; abstract; {$ENDREGION} {$REGION 'Properties'} strict protected property ChildNodes: IList read FChildNodes write FChildNodes; public property Count: Integer read get_Count; property IsLeftAssociative: Boolean read get_IsLeftAssociative; property Literal: string read get_Literal; property Nodes[&index: Integer]: ExpressionNode read get_Nodes; default; property Precedence: Integer read get_Precedence; {$ENDREGION} end; {$ENDREGION} implementation {$AUTOBOX ON} {$REGION 'internal uses'} uses Jedi.Math.Evaluation.BinaryNodes, Jedi.Math.Evaluation.TenaryNodes, Jedi.Math.Evaluation.UnaryNodes, Jedi.Math.Evaluation.ValueNodes; {$ENDREGION} {$REGION 'CompilingProcessor'} constructor CompilingProcessor.Create; begin inherited Create; end; function CompilingProcessor.Add(left, right: &Object): &Object; begin Result := AddExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)); end; function CompilingProcessor.CallFunction(func: &Function; args: ObjectArray): &Object; var nodes: array of ExpressionNode; begin nodes := new (ExpressionNodeArray, Length(args)); &Array.Copy(args, nodes, Length(args)); Result := FunctionExpressionNode.Create(func, nodes); end; class function CompilingProcessor.Default: ExpressionProcessor; begin if FDefault = nil then FDefault := CompilingProcessor.Create; Result := FDefault; end; function CompilingProcessor.Divide(left, right: &Object): &Object; begin Result := DivideExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)); end; function CompilingProcessor.Equal(left, right: &Object): &Object; begin Result := EqualExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)); end; function CompilingProcessor.GreaterThan(left, right: &Object): &Object; begin Result := GreaterThanExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)); end; function CompilingProcessor.GreaterThanOrEqual(left, right: &Object): &Object; begin Result := GreaterThanOrEqualExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)); end; function CompilingProcessor.LeftShift(left, right: &Object): &Object; begin Result := LeftShiftExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)); end; function CompilingProcessor.LessThan(left, right: &Object): &Object; begin Result := LessThanExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)); end; function CompilingProcessor.LessThanOrEqual(left, right: &Object): &Object; begin Result := LessThanOrEqualExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)); end; function CompilingProcessor.LoadConstant(&const: Constant): &Object; begin Result := ConstantExpressionNode.Create(&const); end; function CompilingProcessor.LoadImmediate(value: Double): &Object; begin Result := ImmediateExpressionNode.Create(value); end; function CompilingProcessor.LoadVariable(&var: Variable): &Object; begin Result := VariableExpressionNode.Create(&var); end; function CompilingProcessor.LogicalAnd(left, right: &Object; conditional: Boolean): &Object; begin if not conditional then Result := AndExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)) else Result := ConditionalAndExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)); end; function CompilingProcessor.LogicalNot(operand: &Object): &Object; begin Result := LogicalNegateExpressionNode.Create(ExpressionNode(operand)); end; function CompilingProcessor.LogicalOr(left, right: &Object; conditional: Boolean): &Object; begin if not conditional then Result := OrExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)) else Result := ConditionalOrExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)); end; function CompilingProcessor.LogicalXor(left, right: &Object): &Object; begin Result := XorExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)); end; function CompilingProcessor.Multiply(left, right: &Object): &Object; begin Result := MultiplyExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)); end; function CompilingProcessor.Negate(operand: &Object): &Object; begin Result := NegateExpressionNode.Create(ExpressionNode(operand)); end; function CompilingProcessor.NotEqual(left, right: &Object): &Object; begin Result := NotEqualExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)); end; function CompilingProcessor.ProcessConditional(condition: &Object; out skipTrue, skipFalse: Boolean): &Object; begin Result := ConditionExpressionNode.Create(ExpressionNode(condition)); skipTrue := False; skipFalse := False; end; function CompilingProcessor.ProcessConditionalFalseValue(conditional: &Object; value: &Object): &Object; begin Result := conditional; ExpressionNode(Result).Add(ExpressionNode(value)); end; function CompilingProcessor.ProcessConditionalTrueValue(conditional: &Object; value: &Object): &Object; begin Result := conditional; ExpressionNode(Result).Add(ExpressionNode(value)); end; function CompilingProcessor.RightShift(left, right: &Object): &Object; begin Result := RightShiftExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)); end; function CompilingProcessor.SkipLogicalAnd(current: &Object): Boolean; begin Result := False; end; function CompilingProcessor.SkipLogicalOr(current: &Object): Boolean; begin Result := False; end; function CompilingProcessor.Subtract(left, right: &Object): &Object; begin Result := SubtractExpressionNode.Create(ExpressionNode(left), ExpressionNode(right)); end; {$ENDREGION} {$REGION 'ExpressionNode'} constructor ExpressionNode.Create(nodes: ExpressionNodeArray); begin inherited Create; FChildNodes := ArrayList.Create(&Array(nodes)); end; procedure ExpressionNode.Add(value: ExpressionNode); begin FChildNodes.Add(value); end; function ExpressionNode.get_Count: Integer; begin Result := FChildNodes.Count; end; function ExpressionNode.get_IsLeftAssociative: Boolean; begin Result := True; end; function ExpressionNode.get_Nodes(index: Integer): ExpressionNode; begin Result := ExpressionNode(FChildNodes[index]); end; procedure ExpressionNode.Remove(value: ExpressionNode); begin FChildNodes.Remove(value); end; procedure ExpressionNode.RemoveAt(index: Integer); begin FChildNodes.RemoveAt(index); end; {$ENDREGION} end. |
From: Marcel B. <jed...@us...> - 2005-08-22 17:26:40
|
Update of /cvsroot/jedidotnet/main/run In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4679/main/run Added Files: Jedi.Text.Tokenization.Base.pas Log Message: Generic text tokenizer --- NEW FILE: Jedi.Text.Tokenization.Base.pas --- {--------------------------------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Original Code is: Jedi.Text.Tokenization.Base.pas, released on --. The Initial Developer of the Original Code is Marcel Bestebroer Portions created by Marcel Bestebroer are Copyright (C) 2004 Marcel Bestebroer All Rights Reserved. Contributor(s): You may retrieve the latest version of this file at the JEDI.NET home page, located at http://sf.net/projects/jedidotnet [...1091 lines suppressed...] function WhiteSpaceToken.Literal: string; begin if TypeOf(System.String).IsInstanceOfType(FData) then Result := System.String(FData) else Result := ''; end; {$ENDREGION} {$REGION 'WhiteSpaceToken.EndPoint'} constructor WhiteSpaceToken.EndPoint.Create(column, line: Integer); begin inherited Create; FColumn := column; FLine := line; end; {$ENDREGION} end. |
From: Marcel B. <jed...@us...> - 2005-08-22 17:26:17
|
Update of /cvsroot/jedidotnet/main/resources In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4608/main/resources Added Files: Jedi.Math.resx Log Message: Expression evaluator resource strings --- NEW FILE: Jedi.Math.resx --- (This appears to be a binary file; contents omitted.) |
From: Marcel B. <jed...@us...> - 2005-07-11 19:20:49
|
Update of /cvsroot/jedidotnet/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28814/docs Modified Files: Jedi.Timers.EventScheduler.xml Log Message: Minor fixes. Index: Jedi.Timers.EventScheduler.xml =================================================================== RCS file: /cvsroot/jedidotnet/docs/Jedi.Timers.EventScheduler.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Jedi.Timers.EventScheduler.xml 11 Jul 2005 18:57:54 -0000 1.2 --- Jedi.Timers.EventScheduler.xml 11 Jul 2005 19:20:36 -0000 1.3 *************** *** 13,17 **** <param name="schedule"> <include file='Jedi.Timers.EventScheduler.xml' ! path='/members/member[@name="P:Jedi.Timers.ScheduledEvent.Schedule"]/summary/*' /> </param> <param name="callback"> --- 13,17 ---- <param name="schedule"> <include file='Jedi.Timers.EventScheduler.xml' ! path='/members/member[@name="P:Jedi.Timers.ScheduledEvent.Schedule"]/summary' /> </param> <param name="callback"> *************** *** 32,36 **** <value> <include file='Jedi.Timers.EventScheduler.xml' ! path='/members/member[@name="P:Jedi.Timers.ScheduledEvent.Schedule"]/summary/*' /> </value> </member> --- 32,36 ---- <value> <include file='Jedi.Timers.EventScheduler.xml' ! path='/members/member[@name="P:Jedi.Timers.ScheduledEvent.Schedule"]/summary' /> </value> </member> *************** *** 65,70 **** <member name="E:Jedi.Timers.ScheduledEventBase.Callback"> <summary> ! <include file='Jedi.Timers.EventScheduler.xml' ! path='/members/member[@name="M:Jedi.Timers.ScheduledEvent.#ctor(Jedi.Timers.Schedule,Jedi.Timers.ScheduledEventCallback)"]/param[@name="callback"]/*' /> </summary> </member> --- 65,69 ---- <member name="E:Jedi.Timers.ScheduledEventBase.Callback"> <summary> ! The event or callback to invoke at the specified dates and times. </summary> </member> |
From: Marcel B. <jed...@us...> - 2005-07-11 18:58:03
|
Update of /cvsroot/jedidotnet/docs/snippets In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18693/docs/snippets Modified Files: Jedi.Timers.Schedules.xml Added Files: Jedi.System.CommandLine.xml Log Message: Various updates and additions to the documentation --- NEW FILE: Jedi.System.CommandLine.xml --- <snippets> <!-- ListProperties arg0=fully qualified class name arg1=base property name arg2=the entity the list represents arg3=as above but in plural form arg4=what the base property is used for (used in remarks section of base property only). arg5=additional remarks for base property --> <ListProperties> <member name="P:{0}.{1}"> <summary> Registers a new {2}. </summary> <value> A <see cref="T:System.String" /> registering a new {2} (setting the property) or retrieving the last registered {2} (getting the property). </value> <remarks> Use this property when decorating a property or method with this attribute to specify {4}. You can specify this property several times in one decoration to register multiple {3} at once{5}. </remarks> </member> <member name="P:{0}.{1}Count"> <summary> Holds the number of {3} registered. </summary> <value> An <see cref="T:System.Int32" /> indicating the number of {3} that are registered. </value> </member> <member name="P:{0}.{1}s(System.Int32)"> <summary> The list of {3} registered. </summary> <param name="index"> The 0-based index in the list. </param> <value> The {2} registered. </value> <seealso cref="P:{0}.{1}" /> </member> </ListProperties> <!-- ArgClassCtor arg0=class prefix --> <ArgClassCtor> <member name="M:Jedi.System.CommandLine.{0}Argument.#ctor(System.String,System.Boolean,System.Object,System.Reflection.MemberInfo)"> <summary> <ctor /> </summary> <param name="matches"> The string to match on the command line. This will be the concatenation of the prefix, name and value separator strings specified by the <see cref="T:Jedi.System.CommandLineArgumentAttribute" /> attribute. </param> <param name="caseSensitive"> Indicates whether the case should be considered when matching against the command line. </param> <param name="instance"> <option>The instance to which the property or method for this switch belongs</option> <option><see langword="null" /> if the property or method is <see langword="static" />.</option> </param> <param name="memberInfo"> The method or property this switch is linked to. </param> </member> </ArgClassCtor> </snippets> Index: Jedi.Timers.Schedules.xml =================================================================== RCS file: /cvsroot/jedidotnet/docs/snippets/Jedi.Timers.Schedules.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Jedi.Timers.Schedules.xml 25 Jun 2005 13:17:03 -0000 1.2 --- Jedi.Timers.Schedules.xml 11 Jul 2005 18:57:54 -0000 1.3 *************** *** 50,53 **** --- 50,81 ---- </member> </PropInterval> + <!-- Start property snippet + arg0 = class name (only the part before the Schedule suffix, so Day, Week, Month, etc) + arg1 = interval unit in plural form + --> + <PropStart> + <member name="P:Jedi.Timers.{0}Schedule.Start"> + <summary> + The schedule's start offset in {1} from the parent schedule's current selection. + </summary> + <value> + The schedule's start offset in {1} from the parent schedule's current selection. + </value> + </member> + </PropStart> + <!-- Stop property snippet + arg0 = class name (only the part before the Schedule suffix, so Day, Week, Month, etc) + arg1 = interval unit in plural form + --> + <PropStop> + <member name="P:Jedi.Timers.{0}Schedule.Stop"> + <summary> + The schedule's end offset in {1} from the parent schedule's current selection. + </summary> + <value> + The schedule's end offset in {1} from the parent schedule's current selection. + </value> + </member> + </PropStop> <!-- Schedule common members snippet arg0 = class name (only the part before the Schedule suffix, so Day, Week, Month, etc) |
From: Marcel B. <jed...@us...> - 2005-07-11 18:58:03
|
Update of /cvsroot/jedidotnet/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18693/docs Modified Files: Jedi.IO.IniFiles.xml Jedi.System.CommandLine.xml Jedi.Timers.EventScheduler.xml Jedi.Timers.Schedules.xml namespaceDoc.Jedi.Timers.xml Log Message: Various updates and additions to the documentation Index: Jedi.IO.IniFiles.xml =================================================================== RCS file: /cvsroot/jedidotnet/docs/Jedi.IO.IniFiles.xml,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** Jedi.IO.IniFiles.xml 14 Mar 2005 12:45:19 -0000 1.9 --- Jedi.IO.IniFiles.xml 11 Jul 2005 18:57:53 -0000 1.10 *************** *** 1,4 **** <?xml version="1.0" encoding="utf-8"?> ! <!--Timestamp most recent auto generation: 2005-03-08 10:12:42 UTC--> <members> <member name="T:Jedi.IO.BufferedIniFile"> --- 1,4 ---- <?xml version="1.0" encoding="utf-8"?> ! <!--Timestamp most recent auto generation: 2005-06-16 14:30:23 UTC--> <members> <member name="T:Jedi.IO.BufferedIniFile"> *************** *** 53,62 **** <exclude /> </member> ! <member name="M:Jedi.IO.BufferedIniFile.AutoFlushHandler(Jedi.Timers.ScheduledEvent)"> <summary> The event handler called to check if changes should be written to disk. </summary> <param name="event"> ! The <see cref="T:Jedi.Timers.ScheduledEvent" /> instance that raised the event. </param> </member> --- 53,62 ---- <exclude /> </member> ! <member name="M:Jedi.IO.BufferedIniFile.AutoFlushHandler(Jedi.Timers.ScheduledEventBase)"> <summary> The event handler called to check if changes should be written to disk. </summary> <param name="event"> ! The <see cref="T:Jedi.Timers.ScheduledEventBase" /> instance that raised the event. </param> </member> *************** *** 77,85 **** </value> </member> ! <member name="M:Jedi.IO.BufferedIniFile.AutoReloadHandler(Jedi.Timers.ScheduledEvent)"> <summary> The event handler called to check if outside changes should be merged from disk. </summary> ! <include file='Jedi.IO.IniFiles.xml' path='/members/member[@name="M:Jedi.IO.BufferedIniFile.AutoFlushHandler(Jedi.Timers.ScheduledEvent)"]/param[@name="event"]' /> </member> <member name="P:Jedi.IO.BufferedIniFile.AutoReloadInterval"> --- 77,85 ---- </value> </member> ! <member name="M:Jedi.IO.BufferedIniFile.AutoReloadHandler(Jedi.Timers.ScheduledEventBase)"> <summary> The event handler called to check if outside changes should be merged from disk. </summary> ! <include file='Jedi.IO.IniFiles.xml' path='/members/member[@name="M:Jedi.IO.BufferedIniFile.AutoFlushHandler(Jedi.Timers.ScheduledEventBase)"]/param[@name="event"]' /> </member> <member name="P:Jedi.IO.BufferedIniFile.AutoReloadInterval"> *************** *** 737,740 **** --- 737,742 ---- <member name="T:Jedi.IO.IniFileBase.IniFileEnumerator"> <summary> + Implements the <see cref="T:Jedi.IO.IniFileBase.IIniFileEnumerator" /> interface to provide + enumeration over the IniFile contents. </summary> </member> Index: Jedi.Timers.EventScheduler.xml =================================================================== RCS file: /cvsroot/jedidotnet/docs/Jedi.Timers.EventScheduler.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Jedi.Timers.EventScheduler.xml 2 Mar 2005 16:59:37 -0000 1.1 --- Jedi.Timers.EventScheduler.xml 11 Jul 2005 18:57:54 -0000 1.2 *************** *** 1,140 **** <?xml version="1.0" encoding="utf-8"?> ! <!--Timestamp most recent auto generation: 2005-03-02 15:57:57 UTC--> <members> <member name="T:Jedi.Timers.ScheduledEvent"> <summary> </summary> </member> ! <member name="M:Jedi.Timers.ScheduledEvent.#ctor(System.Int64,Jedi.Timers.ScheduledEventCallback)"> <summary> </summary> ! <param name="interval"> </param> <param name="callback"> </param> </member> ! <member name="P:Jedi.Timers.ScheduledEvent.Interval"> <summary> </summary> <value> </value> </member> ! <member name="M:Jedi.Timers.ScheduledEvent.RunAndReschedule(System.Object)"> <summary> </summary> ! <param name="state"> </param> </member> ! <member name="P:Jedi.Timers.ScheduledEvent.ScheduledFor"> <summary> </summary> - <value> - </value> </member> ! <member name="T:Jedi.Timers.ScheduledEventCallback"> <summary> </summary> </member> ! <member name="M:Jedi.Timers.ScheduledEventCallback.#ctor(System.Object,System.IntPtr)"> <summary> </summary> - <param name="object"> - </param> - <param name="method"> - </param> </member> ! <member name="M:Jedi.Timers.ScheduledEventCallback.BeginInvoke(Jedi.Timers.ScheduledEvent,System.AsyncCallback,System.Object)"> <summary> </summary> - <param name="event"> - </param> - <param name="callback"> - </param> - <param name="object"> - </param> <returns> </returns> </member> ! <member name="M:Jedi.Timers.ScheduledEventCallback.EndInvoke(System.IAsyncResult)"> <summary> </summary> - <param name="result"> - </param> </member> ! <member name="M:Jedi.Timers.ScheduledEventCallback.Invoke(Jedi.Timers.ScheduledEvent)"> <summary> </summary> - <param name="event"> - </param> </member> ! <member name="T:Jedi.Timers.ScheduledEvents"> <summary> </summary> </member> ! <member name="M:Jedi.Timers.ScheduledEvents.#ctor"> <summary> </summary> </member> ! <member name="M:Jedi.Timers.ScheduledEvents.AddEvent(Jedi.Timers.ScheduledEvent)"> <summary> </summary> ! <param name="event"> </param> </member> ! <member name="M:Jedi.Timers.ScheduledEvents.CompareTimes"> <summary> </summary> ! <returns> ! </returns> </member> ! <member name="M:Jedi.Timers.ScheduledEvents.EventsWaiting"> <summary> </summary> ! <returns> ! </returns> </member> ! <member name="P:Jedi.Timers.ScheduledEvents.EventTriggerChecks"> <summary> </summary> ! <value> ! </value> </member> ! <member name="F:Jedi.Timers.ScheduledEvents.FEventTriggerChecks"> <summary> </summary> </member> <member name="F:Jedi.Timers.ScheduledEvents.FHasStarted"> ! <summary> ! </summary> </member> <member name="F:Jedi.Timers.ScheduledEvents.FHasStopped"> ! <summary> ! </summary> </member> <member name="F:Jedi.Timers.ScheduledEvents.FQueueCount"> ! <summary> ! </summary> </member> <member name="F:Jedi.Timers.ScheduledEvents.FWaitEndedCount"> ! <summary> ! </summary> </member> <member name="P:Jedi.Timers.ScheduledEvents.HasStarted"> ! <summary> ! </summary> ! <value> ! </value> </member> <member name="P:Jedi.Timers.ScheduledEvents.HasStopped"> ! <summary> ! </summary> ! <value> ! </value> </member> <member name="M:Jedi.Timers.ScheduledEvents.NotificationsWaiting"> ! <summary> ! </summary> ! <returns> ! </returns> </member> <member name="M:Jedi.Timers.ScheduledEvents.ProcessNotifications"> --- 1,201 ---- <?xml version="1.0" encoding="utf-8"?> ! <!--Timestamp most recent auto generation: 2005-06-19 06:13:15 UTC--> <members> <member name="T:Jedi.Timers.ScheduledEvent"> <summary> + Represents a scheduled event or callback, using the <see cref="T:Jedi.Timers.Schedule" />. </summary> </member> ! <member name="M:Jedi.Timers.ScheduledEvent.#ctor(Jedi.Timers.Schedule,Jedi.Timers.ScheduledEventCallback)"> <summary> + <ctor /> </summary> ! <param name="schedule"> ! <include file='Jedi.Timers.EventScheduler.xml' ! path='/members/member[@name="P:Jedi.Timers.ScheduledEvent.Schedule"]/summary/*' /> </param> <param name="callback"> + The event or callback to invoke at the specified dates and times. </param> + <exception cref="T:System.ArgumentNullException"> + <condition>The <paramref name="schedule" /> parameter is <see langword="null" /></condition> + <condition>The <paramref name="callback" /> parameter is <see langword="null" />.</condition> + </exception> </member> ! <member name="M:Jedi.Timers.ScheduledEvent.NextEvent"> ! <exclude /> ! </member> ! <member name="P:Jedi.Timers.ScheduledEvent.Schedule"> <summary> + The schedule defining the dates and times at which the event or callback should be invoked. </summary> <value> + <include file='Jedi.Timers.EventScheduler.xml' + path='/members/member[@name="P:Jedi.Timers.ScheduledEvent.Schedule"]/summary/*' /> </value> </member> ! <member name="M:Jedi.Timers.ScheduledEvent.ScheduleChanged(System.Object,System.EventArgs)"> <summary> + Reschedules the event or callback when the defining schedule has changed. </summary> ! <param name="sender"> ! The defining schedule that has changed. ! </param> ! <param name="e"> ! An <see cref="T:System.EventArgs" /> instance. </param> </member> ! <member name="T:Jedi.Timers.ScheduledEventBase"> <summary> + Represents a scheduled event or callback. </summary> </member> ! <member name="M:Jedi.Timers.ScheduledEventBase.#ctor(Jedi.Timers.ScheduledEventCallback)"> <summary> + <ctor /> </summary> + <include file='Jedi.Timers.EventScheduler.xml' + path='/members/member[@name="M:Jedi.Timers.ScheduledEvent.#ctor(Jedi.Timers.Schedule,Jedi.Timers.ScheduledEventCallback)"]/param[@name="callback"]' /> </member> ! <member name="M:Jedi.Timers.ScheduledEventBase.AddSchedule"> <summary> + Adds the event or callback to the list of scheduled calls. </summary> </member> ! <member name="E:Jedi.Timers.ScheduledEventBase.Callback"> <summary> + <include file='Jedi.Timers.EventScheduler.xml' + path='/members/member[@name="M:Jedi.Timers.ScheduledEvent.#ctor(Jedi.Timers.Schedule,Jedi.Timers.ScheduledEventCallback)"]/param[@name="callback"]/*' /> + </summary> + </member> + <member name="M:Jedi.Timers.ScheduledEventBase.NextEvent"> + <summary> + Determines the date and time at which the scheduled event should be invoked next. </summary> <returns> + <case> + <fieldref type="System.DateTime" name="MaxValue" reftype="1" /> if the event is not scheduled to be invoked from + the current date. + </case> + <case> + A <see cref="T:System.DateTime" /> representing the date and time at which the scheduled event should be invoked + from the current date. + </case> </returns> </member> ! <member name="M:Jedi.Timers.ScheduledEventBase.OnCallback"> <summary> + Raises the <eventref name="Callback" /> event. </summary> </member> ! <member name="M:Jedi.Timers.ScheduledEventBase.RemoveSchedule"> <summary> + Removes the event or callback from the list of scheduled calls. </summary> </member> ! <member name="M:Jedi.Timers.ScheduledEventBase.Reschedule"> <summary> + Reschedules the event or callback, re-adding it to the list of scheduled calls. </summary> </member> ! <member name="M:Jedi.Timers.ScheduledEventBase.ReScheduleFor(System.Int64)"> <summary> </summary> + <param name="time"> + </param> </member> ! <member name="M:Jedi.Timers.ScheduledEventBase.RunAndReschedule(System.Object)"> <summary> + Invokes the event or callback and reschedules it. </summary> ! <param name="state"> ! The timer state. </param> </member> ! <member name="P:Jedi.Timers.ScheduledEventBase.ScheduledFor"> <summary> + Indicates the date and time at which the event is scheduled to be invoked. </summary> ! <value> ! An <see cref="T:System.Int64" /> indicating the date and time, in ticks, at which the event is scheduled to be ! invoked. ! </value> </member> ! <member name="T:Jedi.Timers.ScheduledEventCallback"> <summary> + Represents the method that will be scheduled. </summary> ! <param name="event"> ! The scheduled event that invoked the callback. ! </param> </member> ! <member name="M:Jedi.Timers.ScheduledEventCallback.#ctor(System.Object,System.IntPtr)"> ! <exclude /> ! </member> ! <member name="M:Jedi.Timers.ScheduledEventCallback.BeginInvoke(Jedi.Timers.ScheduledEventBase,System.AsyncCallback,System.Object)"> ! <exclude /> ! </member> ! <member name="M:Jedi.Timers.ScheduledEventCallback.EndInvoke(System.IAsyncResult)"> ! <exclude /> ! </member> ! <member name="M:Jedi.Timers.ScheduledEventCallback.Invoke(Jedi.Timers.ScheduledEventBase)"> ! <exclude /> ! </member> ! <member name="T:Jedi.Timers.ScheduledEvents"> ! <threadsafety static="true" instance="true" /> <summary> + An event scheduler. </summary> ! <remarks> ! <para> ! With this <see langword="static" /> class, you can have any number of events called based on any ! schedule. Currently only one type of event scheduling is provided, and that is by using the ! <see cref="T:System.Timers.Schedules" /> class and its derivatives. ! </para> ! </remarks> </member> ! <member name="M:Jedi.Timers.ScheduledEvents.#ctor"> ! <exclude /> ! </member> ! <member name="M:Jedi.Timers.ScheduledEvents.AddEvent(Jedi.Timers.ScheduledEventBase)"> <summary> + Adds a new scheduled event to the list of scheduled events. </summary> + <param name="event"> + The scheduled event to add. + </param> + </member> + <member name="M:Jedi.Timers.ScheduledEvents.CompareTimes"> + <exclude /> + </member> + <member name="M:Jedi.Timers.ScheduledEvents.EventsWaiting"> + <exclude /> + </member> + <member name="P:Jedi.Timers.ScheduledEvents.EventTriggerChecks"> + <exclude /> + </member> + <member name="F:Jedi.Timers.ScheduledEvents.FEventTriggerChecks"> + <exclude /> </member> <member name="F:Jedi.Timers.ScheduledEvents.FHasStarted"> ! <exclude /> </member> <member name="F:Jedi.Timers.ScheduledEvents.FHasStopped"> ! <exclude /> </member> <member name="F:Jedi.Timers.ScheduledEvents.FQueueCount"> ! <exclude /> </member> <member name="F:Jedi.Timers.ScheduledEvents.FWaitEndedCount"> ! <exclude /> </member> <member name="P:Jedi.Timers.ScheduledEvents.HasStarted"> ! <exclude /> </member> <member name="P:Jedi.Timers.ScheduledEvents.HasStopped"> ! <exclude /> </member> <member name="M:Jedi.Timers.ScheduledEvents.NotificationsWaiting"> ! <exclude /> </member> <member name="M:Jedi.Timers.ScheduledEvents.ProcessNotifications"> *************** *** 143,166 **** </member> <member name="P:Jedi.Timers.ScheduledEvents.QueueCount"> ! <summary> ! </summary> ! <value> ! </value> </member> ! <member name="M:Jedi.Timers.ScheduledEvents.RemoveEvent(Jedi.Timers.ScheduledEvent)"> <summary> </summary> <param name="event"> </param> </member> <member name="M:Jedi.Timers.ScheduledEvents.TimerLoop"> <summary> </summary> </member> <member name="P:Jedi.Timers.ScheduledEvents.WaitEndedCount"> ! <summary> ! </summary> ! <value> ! </value> </member> </members> \ No newline at end of file --- 204,224 ---- </member> <member name="P:Jedi.Timers.ScheduledEvents.QueueCount"> ! <exclude /> </member> ! <member name="M:Jedi.Timers.ScheduledEvents.RemoveEvent(Jedi.Timers.ScheduledEventBase)"> <summary> + Removes a scheduled event from the list of scheduled events. </summary> <param name="event"> + The scheduled event to remove. </param> </member> <member name="M:Jedi.Timers.ScheduledEvents.TimerLoop"> <summary> + Polling thread execution loop. </summary> </member> <member name="P:Jedi.Timers.ScheduledEvents.WaitEndedCount"> ! <exclude /> </member> </members> \ No newline at end of file Index: Jedi.Timers.Schedules.xml =================================================================== RCS file: /cvsroot/jedidotnet/docs/Jedi.Timers.Schedules.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Jedi.Timers.Schedules.xml 25 Jun 2005 13:17:03 -0000 1.2 --- Jedi.Timers.Schedules.xml 11 Jul 2005 18:57:54 -0000 1.3 *************** *** 7,11 **** arg2="days" arg3="64"> ! <replace source="{class_remarks" /> </include> <member name="M:Jedi.Timers.DaySchedule.GetNextImpl(System.DateTime,System.DateTime,System.DateTime)"> --- 7,11 ---- arg2="days" arg3="64"> ! <replace source="{class_remarks}" /> </include> <member name="M:Jedi.Timers.DaySchedule.GetNextImpl(System.DateTime,System.DateTime,System.DateTime)"> *************** *** 49,60 **** </member> <member name="M:Jedi.Timers.FixedIntervalSchedule.CalculateOffset(System.Int64,System.Boolean)"> ! <summary> ! </summary> ! <param name="parentStart"> ! </param> ! <param name="isLimit"> ! </param> ! <returns> ! </returns> </member> <member name="M:Jedi.Timers.FixedIntervalSchedule.GetLimitsForImpl(System.DateTime,System.DateTime@,System.DateTime@)"> --- 49,53 ---- </member> <member name="M:Jedi.Timers.FixedIntervalSchedule.CalculateOffset(System.Int64,System.Boolean)"> ! <exclude /> </member> <member name="M:Jedi.Timers.FixedIntervalSchedule.GetLimitsForImpl(System.DateTime,System.DateTime@,System.DateTime@)"> *************** *** 81,112 **** path='snippets/PropInterval/*' arg0="FixedInterval"> ! <replace source="{1}"><see cref="M:Jedi.Timers.FixedIntervalSchedule.InternalUnitInterval" /> increments</replace> </include> <member name="T:Jedi.Timers.FixedIntervalSchedule.ParamInTicks"> <summary> </summary> </member> <member name="F:Jedi.Timers.FixedIntervalSchedule.ParamInTicks.All"> <summary> </summary> </member> <member name="F:Jedi.Timers.FixedIntervalSchedule.ParamInTicks.Interval"> <summary> </summary> </member> <member name="F:Jedi.Timers.FixedIntervalSchedule.ParamInTicks.Limits"> <summary> </summary> </member> <member name="F:Jedi.Timers.FixedIntervalSchedule.ParamInTicks.None"> <summary> </summary> </member> <member name="F:Jedi.Timers.FixedIntervalSchedule.ParamInTicks.Start"> <summary> </summary> </member> <member name="F:Jedi.Timers.FixedIntervalSchedule.ParamInTicks.Stop"> <summary> </summary> </member> --- 74,116 ---- path='snippets/PropInterval/*' arg0="FixedInterval"> ! <replace source="{1}"><methodref name="InternalUnitInterval" /> increments</replace> </include> <member name="T:Jedi.Timers.FixedIntervalSchedule.ParamInTicks"> <summary> + The type used to specify which parameters of the + <methodref name="#ctor(System.Int64,System.Int64,System.Int64,Jedi.Timers.Schedule[],Jedi.Timers.FixedIntervalSchedule.ParamInTicks)" /> + constructor are specified in ticks (100 nanosecond intervals). </summary> </member> <member name="F:Jedi.Timers.FixedIntervalSchedule.ParamInTicks.All"> <summary> + The <paramref name="interval" />, <paramref name="start" /> and <paramref name="stop" /> parameters are specified + in ticks (100 nanosecond intervals). </summary> </member> <member name="F:Jedi.Timers.FixedIntervalSchedule.ParamInTicks.Interval"> <summary> + The <paramref name="interval" /> parameter is specified in ticks (100 nanosecond intervals). </summary> </member> <member name="F:Jedi.Timers.FixedIntervalSchedule.ParamInTicks.Limits"> <summary> + The <paramref name="start" /> and <paramref name="stop" /> parameters are specified in ticks (100 nanosecond + intervals). </summary> </member> <member name="F:Jedi.Timers.FixedIntervalSchedule.ParamInTicks.None"> <summary> + None of the parameters are specified in ticks (100 nanosecond intervals). </summary> </member> <member name="F:Jedi.Timers.FixedIntervalSchedule.ParamInTicks.Start"> <summary> + The <paramref name="start" /> parameter is specified in ticks (100 nanosecond intervals). </summary> </member> <member name="F:Jedi.Timers.FixedIntervalSchedule.ParamInTicks.Stop"> <summary> + The <paramref name="stop" /> parameter is specified in ticks (100 nanosecond intervals). </summary> </member> *************** *** 116,145 **** <member name="P:Jedi.Timers.FixedIntervalSchedule.Span"> <summary> </summary> <value> </value> </member> ! <member name="P:Jedi.Timers.FixedIntervalSchedule.Start"> ! <summary> ! </summary> ! <value> ! </value> ! </member> <member name="P:Jedi.Timers.FixedIntervalSchedule.StartDT"> <summary> </summary> <value> </value> </member> ! <member name="P:Jedi.Timers.FixedIntervalSchedule.Stop"> ! <summary> ! </summary> ! <value> ! </value> ! </member> <member name="P:Jedi.Timers.FixedIntervalSchedule.StopDT"> <summary> </summary> <value> </value> </member> --- 120,159 ---- <member name="P:Jedi.Timers.FixedIntervalSchedule.Span"> <summary> + The schedule's selection interval expressed as a <see cref="T:System.TimeSpan" />. </summary> <value> + A <see cref="T:System.TimeSpan" /> representing the schedule's selection interval. </value> </member> ! <include ! file='snippets\Jedi.Timers.Schedules.xml' ! path='snippets/PropStart/*' ! arg0="FixedInterval"> ! <replace source="{1}"><methodref name="InternalUnitInterval" /> increments</replace> ! </include> <member name="P:Jedi.Timers.FixedIntervalSchedule.StartDT"> <summary> + The schedule's start offset from the parent schedule's current selection, expressed as a + <see cref="T:System.DateTime" />. </summary> <value> + A <see cref="T:System.DateTime" /> representing the schedule's start offset in {1} from the parent schedule's + current selection. </value> </member> ! <include ! file='snippets\Jedi.Timers.Schedules.xml' ! path='snippets/PropStop/*' ! arg0="FixedInterval"> ! <replace source="{1}"><methodref name="InternalUnitInterval" /> increments</replace> ! </include> <member name="P:Jedi.Timers.FixedIntervalSchedule.StopDT"> <summary> + The schedule's end offset from the parent schedule's current selection, expressed as a + <see cref="T:System.DateTime" />. </summary> <value> + A <see cref="T:System.DateTime" /> representing the schedule's end offset in {1} from the parent schedule's + current selection. </value> </member> *************** *** 189,193 **** </param> <returns> ! A <see cref="T:System.DateTime" /> representing the first day of the month an year specified by the <paramref name="months" /> parameter. </returns> --- 203,207 ---- </param> <returns> ! A <see cref="T:System.DateTime" /> representing the first day of the month and year specified by the <paramref name="months" /> parameter. </returns> *************** *** 206,209 **** --- 220,224 ---- <member name="F:Jedi.Timers.MonthSchedule.MaxMonth"> <summary> + The maximum number of months you can specify as the start and/or end offset, or the interval. </summary> </member> *************** *** 211,232 **** <exclude /> </member> ! <member name="P:Jedi.Timers.MonthSchedule.Start"> ! <summary> ! </summary> ! <value> ! </value> ! </member> ! <member name="P:Jedi.Timers.MonthSchedule.Stop"> ! <summary> ! </summary> ! <value> ! </value> ! </member> <member name="M:Jedi.Timers.MonthSchedule.ToMonths(System.DateTime)"> <summary> </summary> <param name="date"> </param> <returns> </returns> </member> --- 226,249 ---- <exclude /> </member> ! <include ! file='snippets\Jedi.Timers.Schedules.xml' ! path='snippets/PropStart/*' ! arg0="Month" ! arg1="months" /> ! <include ! file='snippets\Jedi.Timers.Schedules.xml' ! path='snippets/PropStop/*' ! arg0="Month" ! arg1="months" /> <member name="M:Jedi.Timers.MonthSchedule.ToMonths(System.DateTime)"> <summary> + Converts a <see cref="T:System.DateTime" /> value to a month number. </summary> <param name="date"> + The date to convert. </param> <returns> + A <see cref="T:System.Int32" /> representing the month number for the combination of year and month in the + <paramref name="date" /> parameter. </returns> </member> *************** *** 258,262 **** <member name="M:Jedi.Timers.Schedule.#ctor(Jedi.Timers.Schedule[])"> <summary> ! Initializes a new instance of the <see-class /> class. </summary> <param name="schedules"> --- 275,279 ---- <member name="M:Jedi.Timers.Schedule.#ctor(Jedi.Timers.Schedule[])"> <summary> ! <ctor /> </summary> <param name="schedules"> *************** *** 323,327 **** </param> <param name="recursive"> ! <true-if> the child schedules should be considered when enumerating</true-if> </param> </member> --- 340,344 ---- </param> <param name="recursive"> ! <true-if>the child schedules should be considered when enumerating</true-if> </param> </member> *************** *** 352,357 **** <remarks> This field is used internally by the enumerator to check whether the schedule has changed since the enumerator ! was first created. The value is incremented upon each call to <see cref="M:Jedi.Timers.Schedule.Modified" />, ! which in turn is called automatically when one of the schedule properties are changed. </remarks> </member> --- 369,374 ---- <remarks> This field is used internally by the enumerator to check whether the schedule has changed since the enumerator ! was first created. The value is incremented upon each call to <methodref name="Modified" />, which in turn is ! called automatically when one of the schedule properties are changed. </remarks> </member> *************** *** 377,381 **** the date and times of this schedule should be enumerated. </param> ! <include file='Jedi.Timers.Schedules.xml' path='/members/member[@name="M:Jedi.Timers.Schedule.GetEnumerator"]/returns' /> </member> <member name="M:Jedi.Timers.Schedule.GetEnumerator(System.DateTime)"> --- 394,400 ---- the date and times of this schedule should be enumerated. </param> ! <include ! file='Jedi.Timers.Schedules.xml' ! path='/members/member[@name="M:Jedi.Timers.Schedule.GetEnumerator"]/returns' /> </member> <member name="M:Jedi.Timers.Schedule.GetEnumerator(System.DateTime)"> *************** *** 414,435 **** </param> <param name="start"> ! <para> ! Upon return, a <see cref="T:System.DateTime" /> indicating the start of this schedules selection range ! </para> ! <para>-or-</para> ! <para> <see cref="T:System.DateTime" />.<see cref="F:System.DateTime.MaxValue" /> if the date does not lie within the schedule's defined range. ! </para> </param> <param name="stop"> ! <para> ! Upon return, a <see cref="T:System.DateTime" /> indicating the end of this schedules selection range ! </para> ! <para>-or-</para> ! <para> <see cref="T:System.DateTime" />.<see cref="F:System.DateTime.MaxValue" /> if the date does not lie within the schedule's, or one of its parent schedules', defined range. ! </para> </param> </member> --- 433,448 ---- </param> <param name="start"> ! <case>Upon return, a <see cref="T:System.DateTime" /> indicating the start of this schedules selection range</case> ! <case> <see cref="T:System.DateTime" />.<see cref="F:System.DateTime.MaxValue" /> if the date does not lie within the schedule's defined range. ! </case> </param> <param name="stop"> ! <case>Upon return, a <see cref="T:System.DateTime" /> indicating the end of this schedules selection range</case> ! <case> <see cref="T:System.DateTime" />.<see cref="F:System.DateTime.MaxValue" /> if the date does not lie within the schedule's, or one of its parent schedules', defined range. ! </case> </param> </member> *************** *** 645,649 **** <para> Wrapping a schedule hierarchy as a single hierarchy is often used when a complex hierarchy is defined to select ! a certain range, but each of selections in that range requires the exact same child selections. </para> <para> --- 658,662 ---- <para> Wrapping a schedule hierarchy as a single hierarchy is often used when a complex hierarchy is defined to select ! a certain range, but each of the selections in that range requires the exact same child selections. </para> <para> *************** *** 665,673 **** Wraps a schedule hierarchy as a single schedule and adds the specified child schedules. </summary> ! <include file='Jedi.Timers.Schedules.xml' path='/members/member[@name="M:Jedi.Timers.Schedule.Wrap(Jedi.Timers.Schedule)"]/param[@name="scheduleHierarchy"]' /> <param name="schedules"> The schedules to add as children of the wrapped schedule. </param> ! <include file='Jedi.Timers.Schedules.xml' path='/members/member[@name="M:Jedi.Timers.Schedule.Wrap(Jedi.Timers.Schedule)"]/returns' /> </member> <member name="T:Jedi.Timers.ScheduleException"> --- 678,690 ---- Wraps a schedule hierarchy as a single schedule and adds the specified child schedules. </summary> ! <include ! file='Jedi.Timers.Schedules.xml' ! path='/members/member[@name="M:Jedi.Timers.Schedule.Wrap(Jedi.Timers.Schedule)"]/param[@name="scheduleHierarchy"]' /> <param name="schedules"> The schedules to add as children of the wrapped schedule. </param> ! <include ! file='Jedi.Timers.Schedules.xml' ! path='/members/member[@name="M:Jedi.Timers.Schedule.Wrap(Jedi.Timers.Schedule)"]/returns' /> </member> <member name="T:Jedi.Timers.ScheduleException"> *************** *** 713,726 **** </include> <member name="P:Jedi.Timers.WeekSchedule.FirstDayOfWeek"> ! <summary> ! </summary> ! <value> ! </value> </member> <member name="P:Jedi.Timers.WeekSchedule.FirstPartialWeek"> ! <summary> ! </summary> ! <value> ! </value> </member> <member name="M:Jedi.Timers.WeekSchedule.GetNextImpl(System.DateTime,System.DateTime,System.DateTime)"> --- 730,737 ---- </include> <member name="P:Jedi.Timers.WeekSchedule.FirstDayOfWeek"> ! <exclude /> </member> <member name="P:Jedi.Timers.WeekSchedule.FirstPartialWeek"> ! <exclude /> </member> <member name="M:Jedi.Timers.WeekSchedule.GetNextImpl(System.DateTime,System.DateTime,System.DateTime)"> *************** *** 731,754 **** </member> <member name="P:Jedi.Timers.WeekSchedule.LastPartialWeek"> ! <summary> ! </summary> ! <value> ! </value> </member> <member name="T:Jedi.Timers.WeekSchedule.PartialWeekOption"> ! <summary> ! </summary> </member> <member name="F:Jedi.Timers.WeekSchedule.PartialWeekOption.Allowed"> ! <summary> ! </summary> </member> <member name="F:Jedi.Timers.WeekSchedule.PartialWeekOption.ForChildSchedulesOnly"> ! <summary> ! </summary> </member> <member name="F:Jedi.Timers.WeekSchedule.PartialWeekOption.NotAllowed"> ! <summary> ! </summary> </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' --- 742,758 ---- </member> <member name="P:Jedi.Timers.WeekSchedule.LastPartialWeek"> ! <exclude /> </member> <member name="T:Jedi.Timers.WeekSchedule.PartialWeekOption"> ! <exclude /> </member> <member name="F:Jedi.Timers.WeekSchedule.PartialWeekOption.Allowed"> ! <exclude /> </member> <member name="F:Jedi.Timers.WeekSchedule.PartialWeekOption.ForChildSchedulesOnly"> ! <exclude /> </member> <member name="F:Jedi.Timers.WeekSchedule.PartialWeekOption.NotAllowed"> ! <exclude /> </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' *************** *** 768,787 **** file='snippets\Jedi.Timers.Schedules.xml' path='snippets/PropInterval/*' ! arg0="Month" ! arg1="months" /> <member name="M:Jedi.Timers.YearSchedule.ScheduleLimit"> <exclude /> </member> ! <member name="P:Jedi.Timers.YearSchedule.Start"> ! <summary> ! </summary> ! <value> ! </value> ! </member> ! <member name="P:Jedi.Timers.YearSchedule.Stop"> ! <summary> ! </summary> ! <value> ! </value> ! </member> </members> \ No newline at end of file --- 772,789 ---- file='snippets\Jedi.Timers.Schedules.xml' path='snippets/PropInterval/*' ! arg0="Year" ! arg1="years" /> <member name="M:Jedi.Timers.YearSchedule.ScheduleLimit"> <exclude /> </member> ! <include ! file='snippets\Jedi.Timers.Schedules.xml' ! path='snippets/PropStart/*' ! arg0="Month" ! arg1="months" /> ! <include ! file='snippets\Jedi.Timers.Schedules.xml' ! path='snippets/PropStop/*' ! arg0="Month" ! arg1="months" /> </members> \ No newline at end of file Index: namespaceDoc.Jedi.Timers.xml =================================================================== RCS file: /cvsroot/jedidotnet/docs/namespaceDoc.Jedi.Timers.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** namespaceDoc.Jedi.Timers.xml 2 Mar 2005 16:59:37 -0000 1.1 --- namespaceDoc.Jedi.Timers.xml 11 Jul 2005 18:57:54 -0000 1.2 *************** *** 4,7 **** --- 4,9 ---- <member name="N:Jedi.Timers"> <summary> + Provides classes that can be used to schedule events/callbacks to be called at certain intervals or according to + complex schedules. </summary> </member> Index: Jedi.System.CommandLine.xml =================================================================== RCS file: /cvsroot/jedidotnet/docs/Jedi.System.CommandLine.xml,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Jedi.System.CommandLine.xml 12 Mar 2005 18:08:43 -0000 1.7 --- Jedi.System.CommandLine.xml 11 Jul 2005 18:57:54 -0000 1.8 *************** *** 1,5 **** <?xml version="1.0" encoding="utf-8"?> ! <!--Timestamp most recent auto generation: 2005-03-08 10:12:44 UTC--> <members> <member name="T:Jedi.System.CommandLine"> <summary> --- 1,70 ---- <?xml version="1.0" encoding="utf-8"?> ! <!--Timestamp most recent auto generation: 2005-06-16 14:30:23 UTC--> <members> + <member name="T:Jedi.System.BooleanCommandLineArgumentAttribute"> + <summary> + Attribute used to provide information on the command line argument(s) this boolean property refers to. + </summary> + <remarks> + <para> + The attribute can be attached to a property of type <see cref="T:System.Boolean" />. + </para> + <para> + The constructor does not provide any parameters. Values are set by setting certain properties of the attribute. + In addition, you're allowed to provided multiple instances of this attribute for more flexability. + </para> + <para> + Each instance of the attribute can define any number of command line switches to recognize and link to the + property or method. + </para> + </remarks> + </member> + <member name="M:Jedi.System.BooleanCommandLineArgumentAttribute.#ctor"> + <summary> + <ctor />. + </summary> + </member> + <include + file='snippets\Jedi.System.CommandLine.xml' + path='snippets/ListProperties/*' + arg0="Jedi.System.BooleanCommandLineArgumentAttribute" + arg1="FalseValue" + arg2='<see langword="false" /> command line operand' + arg3='<see langword="false" /> command line operands' + arg4='the argument operands that will result in setting the property to <see langword="false" /> when one of them is specified on the command line' + arg5="" /> + <member name="P:Jedi.System.BooleanCommandLineArgumentAttribute.FalseValueList"> + <summary> + A <see cref="T:System.ArrayList" /> containing all registered <see langword="false" /> command line operands. + </summary> + <value> + A <see cref="T:System.ArrayList" /> containing all registered <see langword="false" /> command line operands. + </value> + </member> + <member name="P:Jedi.System.BooleanCommandLineArgumentAttribute.NoValueAction"> + <summary> + Specifies what action to take when the argument has no operand on the command line. + </summary> + <value> + The value that indicates the action to take when a boolean-type argument on the command line has no operand following it. + </value> + </member> + <include + file='snippets\Jedi.System.CommandLine.xml' + path='snippets/ListProperties/*' + arg0="Jedi.System.BooleanCommandLineArgumentAttribute" + arg1="TrueValue" + arg2='<see langword="true" /> command line operand' + arg3='<see langword="true" /> command line operands' + arg4='the argument operands that will result in setting the property to <see langword="true" /> when one of them is specified on the command line' + arg5="" /> + <member name="P:Jedi.System.BooleanCommandLineArgumentAttribute.TrueValueList"> + <summary> + A <see cref="T:System.ArrayList" /> containing all registered <see langword="true" /> command line operands. + </summary> + <value> + A <see cref="T:System.ArrayList" /> containing all registered <see langword="true" /> command line operands. + </value> + </member> <member name="T:Jedi.System.CommandLine"> <summary> *************** *** 9,17 **** <member name="M:Jedi.System.CommandLine.#ctor(System.Object[],System.String)"> <summary> ! Initializes a new instance of the <see cref="T:Jedi.System.CommandLine" /> class. </summary> <param name="arguments"> A list of instances or <see cref="T:System.Type" />s to scan for properties and methods ! decoracted with the <see cref="T:Jedi.System.CommandLineArgumentAttribute" /></param> <param name="responseFilePrefix"> The match string to indicate the character or switch used to parse a response file. --- 74,83 ---- <member name="M:Jedi.System.CommandLine.#ctor(System.Object[],System.String)"> <summary> ! <ctor />. </summary> <param name="arguments"> A list of instances or <see cref="T:System.Type" />s to scan for properties and methods ! decoracted with the <see cref="T:Jedi.System.CommandLineArgumentAttribute" /> ! </param> <param name="responseFilePrefix"> The match string to indicate the character or switch used to parse a response file. *************** *** 53,82 **** </summary> </member> ! <member name="M:Jedi.System.CommandLine.Argument.#ctor(System.String,System.Boolean,System.Object,System.Reflection.MemberInfo)"> ! <summary> ! Initializes a new instance of the <see cref="T:Jedi.System.CommandLine.Argument" /> class. ! </summary> ! <param name="matches"> ! The string to match on the command line. This will be the concatenation of the prefix, name and value separator ! strings specified by the <see cref="T:Jedi.System.CommandLineArgumentAttribute" /> attribute. ! </param> ! <param name="caseSensitive"> ! Indicates whether the case should be considered when matching against the command line. ! </param> ! <param name="instance"> ! <para> ! The instance to which the property or method for this switch belongs. ! </para> ! <para> ! -or- ! </para> ! <para> ! A <see langword="null" /> if the property or method is <see langword="static" />. ! </para> ! </param> ! <param name="memberInfo"> ! The method or property this switch is linked to. ! </param> ! </member> <member name="P:Jedi.System.CommandLine.Argument.CaseSensitive"> <summary> --- 119,126 ---- </summary> </member> ! <include ! file='snippets/Jedi.System.CommandLine.xml' ! path='snippets/ArgClassCtor/*' ! arg0="" /> <member name="P:Jedi.System.CommandLine.Argument.CaseSensitive"> <summary> *************** *** 84,89 **** </summary> <value> ! <see langword="true" /> if the value in the <see cref="P:Jedi.System.CommandLine.Argument.Matches" /> property ! should be compared case sensitive; otherwise, <see langword="false" />. </value> </member> --- 128,133 ---- </summary> <value> ! <true-if>the value in the <see cref="P:Jedi.System.CommandLine.Argument.Matches" /> property ! should be compared case sensitive</true-if>. </value> </member> *************** *** 105,109 **** <term>Less than zero</term> <description> ! <para> <paramref name="obj" /> is a <see cref="T:Jedi.System.CommandLine.Argument" /> and this instance's <see cref="P:Jedi.System.CommandLine.Argument.Matches">match string</see> is less than that of --- 149,153 ---- <term>Less than zero</term> <description> ! <case> <paramref name="obj" /> is a <see cref="T:Jedi.System.CommandLine.Argument" /> and this instance's <see cref="P:Jedi.System.CommandLine.Argument.Matches">match string</see> is less than that of *************** *** 111,119 **** (<see cref="P:Jedi.System.CommandLine.Argument.CaseSensitive" /> is <see langword="false" />) the case of the two strings will have been ignored. ! </para> ! <para> ! -or- ! </para> ! <para> <paramref name="obj" /> is a <see cref="T:System.String" /> and this instance's <see cref="P:Jedi.System.CommandLine.Argument.Matches">match string</see> is less than the specified --- 155,160 ---- (<see cref="P:Jedi.System.CommandLine.Argument.CaseSensitive" /> is <see langword="false" />) the case of the two strings will have been ignored. ! </case> ! <case> <paramref name="obj" /> is a <see cref="T:System.String" /> and this instance's <see cref="P:Jedi.System.CommandLine.Argument.Matches">match string</see> is less than the specified *************** *** 122,126 **** case-sensitive (<see cref="P:Jedi.System.CommandLine.Argument.CaseSensitive" /> is <see langword="false" />) the case of the two strings will have been ignored. ! </para> </description> </item> --- 163,167 ---- case-sensitive (<see cref="P:Jedi.System.CommandLine.Argument.CaseSensitive" /> is <see langword="false" />) the case of the two strings will have been ignored. ! </case> </description> </item> *************** *** 128,141 **** <term>Zero</term> <description> ! <para> <paramref name="obj" /> is a <see cref="T:Jedi.System.CommandLine.Argument" /> and two instance's <see cref="P:Jedi.System.CommandLine.Argument.Matches">match strings</see> are equal. If either instance is not case-sensitive (<see cref="P:Jedi.System.CommandLine.Argument.CaseSensitive" /> is <see langword="false" />) the case of the two strings will have been ignored. ! </para> ! <para> ! -or- ! </para> ! <para> <paramref name="obj" /> is a <see cref="T:System.String" /> and this instance's <see cref="P:Jedi.System.CommandLine.Argument.Matches">match string</see> equals the specified --- 169,179 ---- <term>Zero</term> <description> ! <case> <paramref name="obj" /> is a <see cref="T:Jedi.System.CommandLine.Argument" /> and two instance's <see cref="P:Jedi.System.CommandLine.Argument.Matches">match strings</see> are equal. If either instance is not case-sensitive (<see cref="P:Jedi.System.CommandLine.Argument.CaseSensitive" /> is <see langword="false" />) the case of the two strings will have been ignored. ! </case> ! <case> <paramref name="obj" /> is a <see cref="T:System.String" /> and this instance's <see cref="P:Jedi.System.CommandLine.Argument.Matches">match string</see> equals the specified *************** *** 144,148 **** case-sensitive (<see cref="P:Jedi.System.CommandLine.Argument.CaseSensitive" /> is <see langword="false" />) the case of the two strings will have been ignored. ! </para> </description> </item> --- 182,186 ---- case-sensitive (<see cref="P:Jedi.System.CommandLine.Argument.CaseSensitive" /> is <see langword="false" />) the case of the two strings will have been ignored. ! </case> </description> </item> *************** *** 150,154 **** <term>Greater than zero</term> <description> ! <para> <paramref name="obj" /> is a <see cref="T:Jedi.System.CommandLine.Argument" /> and this instance's <see cref="P:Jedi.System.CommandLine.Argument.Matches">match string</see> is greater than that of --- 188,192 ---- <term>Greater than zero</term> <description> ! <case> <paramref name="obj" /> is a <see cref="T:Jedi.System.CommandLine.Argument" /> and this instance's <see cref="P:Jedi.System.CommandLine.Argument.Matches">match string</see> is greater than that of *************** *** 156,164 **** (<see cref="P:Jedi.System.CommandLine.Argument.CaseSensitive" /> is <see langword="false" />) the case of the two strings will have been ignored. ! </para> ! <para> ! -or- ! </para> ! <para> <paramref name="obj" /> is a <see cref="T:System.String" /> and this instance's <see cref="P:Jedi.System.CommandLine.Argument.Matches">match string</see> is greater than the specified --- 194,199 ---- (<see cref="P:Jedi.System.CommandLine.Argument.CaseSensitive" /> is <see langword="false" />) the case of the two strings will have been ignored. ! </case> ! <case> <paramref name="obj" /> is a <see cref="T:System.String" /> and this instance's <see cref="P:Jedi.System.CommandLine.Argument.Matches">match string</see> is greater than the specified *************** *** 167,177 **** case-sensitive (<see cref="P:Jedi.System.CommandLine.Argument.CaseSensitive" /> is <see langword="false" />) the case of the two strings will have been ignored. ! </para> ! <para> ! -or- ! </para> ! <para> <paramref name="obj" /> is a <see langword="null" />. ! </para> </description> </item> --- 202,209 ---- case-sensitive (<see cref="P:Jedi.System.CommandLine.Argument.CaseSensitive" /> is <see langword="false" />) the case of the two strings will have been ignored. ! </case> ! <case> <paramref name="obj" /> is a <see langword="null" />. ! </case> </description> </item> *************** *** 180,184 **** <remarks> <para> ! <paramref name="obj" /> must be a <see langword="null" />, an instance of <see cref="T:Jedi.System.CommandLine.Argument" /> or an instance of <see cref="T:System.String" />; otherwise an exception is thrown. --- 212,216 ---- <remarks> <para> ! <paramref name="obj" /> must be <see langword="null" />, an instance of <see cref="T:Jedi.System.CommandLine.Argument" /> or an instance of <see cref="T:System.String" />; otherwise an exception is thrown. *************** *** 192,197 **** </remarks> <exception cref="T:System.ArgumentException"> ! <paramref name="obj" /> is not a <see langword="null" />, an instance of ! <see cref="T:Jedi.System.CommandLine.Argument" /> or an instance of <see cref="T:System.String" />. </exception> </member> --- 224,229 ---- </remarks> <exception cref="T:System.ArgumentException"> ! <paramref name="obj" /> is not <see langword="null" />, an instance of ! <see cref="T:Jedi.System.CommandLine.Argument" /> or an instance of <see cref="T:System.String" />. </exception> </member> *************** *** 201,213 **** </summary> <value> ! <para> ! The instance to which the property or method for this switch belongs. ! </para> ! <para> ! -or- ! </para> ! <para> ! A <see langword="null" /> if the property or method is <see langword="static" />. ! </para> </value> </member> --- 233,238 ---- </summary> <value> ! <case>The instance to which the property or method for this switch belongs.</case> ! <case><see langword="null" /> if the property or method is <see langword="static" />.</case> </value> </member> *************** *** 227,239 **** </summary> <value> ! <para> A <see cref="T:System.Reflection.PropertyInfo" /> representing the property this switch is linked to. ! </para> ! <para> ! -or- ! </para> ! <para> A <see cref="T:System.Reflection.MethodInfo" /> representing the method this switch is linked to. ! </para> </value> </member> --- 252,261 ---- </summary> <value> ! <case> A <see cref="T:System.Reflection.PropertyInfo" /> representing the property this switch is linked to. ! </case> ! <case> A <see cref="T:System.Reflection.MethodInfo" /> representing the method this switch is linked to. ! </case> </value> </member> *************** *** 257,266 **** This method is called by the <see cref="T:Jedi.System.CommandLine">command line parser</see> when the switch specified by the <see cref="P:Jedi.System.CommandLine.Argument.Matches" /> was found. The method will delegate ! processing to either the linked method or handle set the property to the correct value. </remarks> </member> ! <member name="M:Jedi.System.CommandLine.Argument.ProcessBoolean(System.String,System.String,System.Int32@)"> <summary> ! Processes the argument as a boolean. </summary> <param name="match"> --- 279,293 ---- This method is called by the <see cref="T:Jedi.System.CommandLine">command line parser</see> when the switch specified by the <see cref="P:Jedi.System.CommandLine.Argument.Matches" /> was found. The method will delegate ! processing to either the linked method or the proper handler for the linked property. </remarks> + <exception cref="T:Jedi.System.CommandLineException"> + <condition>No handler was registered for the linked property's type</condition> + <condition>An invalid operand value was found</condition> + <condition>No operand value was found, but one was expected.</condition> + </exception> </member> ! <member name="M:Jedi.System.CommandLine.Argument.ProcessImpl(System.String,System.String,System.Int32@)"> <summary> ! Processes the argument. </summary> <param name="match"> *************** *** 273,277 **** <param name="index"> <para> ! Upon entry, the index where the optional + or - operand should be. </para> <para> --- 300,304 ---- <param name="index"> <para> ! Upon entry, the index where the optional operand should be. </para> <para> *************** *** 282,351 **** <remarks> <para> ! This method is called for a property of the type <see cref="T:System.Boolean" />. It will look for a plus, minus ! or space character. </para> <para> - If a plus (+) character is detected, the linked property will be set to <see langword="true" />. The minus (-) - character will set the property to <see langword="false" />. The space character will toggle the property. </para> <exception cref="T:Jedi.System.CommandLineException"> ! The first character after the switch is invalid (ie. it is not a plus (+), minus (-) or space character). </exception> </remarks> </member> ! <member name="M:Jedi.System.CommandLine.Argument.ProcessInt(System.String,System.String,System.Int32@)"> <summary> ! Processes the argument as an integer type. </summary> ! <param name="match"> ! The match string of the argument as found on the command line. This can differ in case only from the ! <see cref="P:Jedi.System.CommandLine.Argument.Matches" /> property. ! </param> ! <param name="commandLine"> ! The command line being parsed. </param> ! <param name="index"> ! <para> ! Upon entry, the index where the integer operand should be. ! </para> ! <para> ! Upon exit, the index where the next switch or literal can be found (any spaces following this switch are ! skipped). ! </para> </param> - <remarks> - <para> - This method is called for a property of any integer type (<see cref="T:System.Int16" />), - <see cref="T:System.Int32" />), <see cref="T:System.Int64" />)). It will use the property type's Parse - method to parse the operand text as a string. - </para> - <para> - Because it uses the actual Parse method of the integer type of the property, parsing is limited to the format - allowed by the various Parse methods. The Parse method of the type will be called with the - <see cref="F:System.Globalization.NumberFormatInfo.InvariantInfo" /> and - <see cref="F:System.Globalization.CultureInfo.InvariantCulture" /> arguments. - </para> - </remarks> </member> ! <member name="M:Jedi.System.CommandLine.Argument.ProcessString(System.String,System.String,System.Int32@)"> <summary> ! Processes the argument as a string type. </summary> ! <param name="match"> ! The match string of the argument as found on the command line. This can differ in case only from the ! <see cref="P:Jedi.System.CommandLine.Argument.Matches" /> property. ! </param> ! <param name="commandLine"> ! The command line being parsed. ! </param> ! <param name="index"> ! <para> ! Upon entry, the index where the string operand should be. ! </para> ! <para> ! Upon exit, the index where the next switch or literal can be found (any spaces following this switch are ! skipped). ! </para> ! </param> </member> <member name="M:Jedi.System.CommandLine.CheckAndProcessArgument(System.String,System.Int32@)"> --- 309,390 ---- <remarks> <para> ! This method is called when an argument has been found on the command line. Implementers will process an operand ! value on the command line. </para> <para> </para> <exception cref="T:Jedi.System.CommandLineException"> ! <condition>An invalid operand value was found</condition> ! <condition>No operand value was found, but one was expected.</condition> </exception> </remarks> </member> ! <member name="M:Jedi.System.CommandLine.Argument.RegisterHandler(System.Type,System.Type)"> <summary> ! Registers an <see cref="T:Jedi.System.CommandLine.Argument" /> descendant to use for a specific ! <see cref="T:System.Type" />. </summary> ! <param name="valueType"> ! Property type for which to register the argument. </param> ! <param name="argumentType"> ! Argument type that will handle properties of the type specified by the <paramref name="valueType" /> parameter. </param> </member> ! <member name="M:Jedi.System.CommandLine.Argument.TypeHandlers"> <summary> ! A dictionary containing the list of registered property types and their argument processing types. </summary> ! <returns> ! An <see cref="T:System.Collections.IDictionary" />, containing the argument processing types, indexed on property type. ! </returns> ! </member> ! <member name="T:Jedi.System.CommandLine.BooleanArgument"> ! <summary> ! The argument class used for <see cref="T:System.Boolean" /> type properties. ! </summary> ! </member> ! <include ! file='snippets/Jedi.System.CommandLine.xml' ! path='snippets/ArgClassCtor/*' ! arg0="Boolean" /> ! <member name="P:Jedi.System.CommandLine.BooleanArgument.NoValueAction"> ! <include ! file='Jedi.System.CommandLine.xml' ! path='/members/member[@name="P:Jedi.System.BooleanCommandLineArgumentAttribute.NoValueAction"]/*' /> ! </member> ! <member name="T:Jedi.System.CommandLine.BooleanArgument.NoValueActionEnum"> ! <summary> ! The enumeration type used to specify the action to take when a <see cref="T:System.Boolean" /> type argument ! doesn't have an operand on the command line. ! </summary> ! </member> ! <member name="F:Jedi.System.CommandLine.BooleanArgument.NoValueActionEnum.Ignore"> ! <summary> ! Ignore the command line agrument completely. ! </summary> ! </member> ! <member name="F:Jedi.System.CommandLine.BooleanArgument.NoValueActionEnum.Reset"> ! <summary> ! Set the property to <see langword="false" />. ! </summary> ! </member> ! <member name="F:Jedi.System.CommandLine.BooleanArgument.NoValueActionEnum.Set"> ! <summary> ! Set the property to <see langword="true" />. ! </summary> ! </member> ! <member name="F:Jedi.System.CommandLine.BooleanArgument.NoValueActionEnum.ThrowException"> ! <summary> ! Throw a <see cref="T:Jedi.System.CommandLineException" /> exception. ! </summary> ! </member> ! <member name="F:Jedi.System.CommandLine.BooleanArgument.NoValueActionEnum.Toggle"> ! <summary> ! Toggle the property. ! </summary> ! </member> ! <member name="M:Jedi.System.CommandLine.BooleanArgument.ProcessImpl(System.String,System.String,System.Int32@)"> ! <exclude /> </member> <member name="M:Jedi.System.CommandLine.CheckAndProcessArgument(System.String,System.Int32@)"> *************** *** 366,370 **** </param> <returns> ! <see langword="true" /> if the current argument was a registered switch; otherwise, <see... [truncated message content] |
From: Marcel B. <jed...@us...> - 2005-07-09 09:34:28
|
Update of /cvsroot/jedidotnet/web In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv26909/web Modified Files: frameleft.htm Added Files: jedidoc.tags.htm Log Message: Added JediDoc tool tag reference --- NEW FILE: jedidoc.tags.htm --- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <link rel="STYLESHEET" href="styles/default.css" type="text/css"> <title>JediDoc tool tag processing</title> </head> <body> <h1>JediDoc tool tag processing</h1> <p> </p> <p> The JediDoc tool is used to process the assemblies and create or update the unit-based XML files. In addition it will merge those unit-based XML files to create the assembly-based XML files, which can be used by tools like <a href="http://ndoc.sourceforge.net">nDoc</a> or for help insight. </p> <p> During the merging of the unit-based XML files, the JediDoc tool will process certain tags and perform some task (usually replacing the tag with a fixed text). Below is a list of all recognised and processed tags. </p> <p> </p> <h2><b>case</b></h2> <p> The first occurance of the <b>case</b> tag within a group will result in its contents being placed inside <b><para></b> tags. Any following occurrence, immediately following the previous one, will also be placed inside <b><para></b> tags, but the fragment <code><para>-or-</para></code> will be added before the new paragraph. </p> <p> There are two additional tags that perform the same expansion: the <b><condition></b> tag and the <b><option></b> tag. Within a group, the three tags can be freely mixed. </p> <p>Input:</p> <pre><returns> <case>An empty string if nothing was found</case> <case>A string representing the found item.</case> </returns></pre> <p>Output:</p> <pre><returns> <para>An empty string if nothing was found</para> <para>-or-</para> <para>A string representing the found item.</para> </returns></pre> <p> </p> <h2><b>condition</b></h2> <p> The first occurance of the <b>condition</b> tag within a group will result in its contents being placed inside <b><para></b> tags. Any following occurrence, immediately following the previous one, will also be placed inside <b><para></b> tags, but the fragment <code><para>-or-</para></code> will be added before the new paragraph. </p> <p> There are two additional tags that perform the same expansion: the <b><case></b> tag and the <b><option></b> tag. Within a group, the three tags can be freely mixed. </p> <p>Input:</p> <pre><exception cref="T:System.ArgumentRangeException"> <condition>The value was negative</condition> <condition>The value exceeded the number of elements.</condition> </exception> </pre> <p>Output:</p> <pre><exception cref="T:System.ArgumentRangeException"> <para>The value was negative</para> <para>-or-</para> <para>The value exceeded the number of elements.</para> </exception></pre> <p> </p> <h2><b>ctor</b></h2> <p> The <b>ctor</b> tag expands to the common constructor summary text <code>Initializes a new instance of the <see cref="T:<i>qualified class name</i>" /> class.</code> where <i>qualified class name</i> is the namespace-qualified class name of the current member. </p> <p> If the <b>ctor</b> tag has contents, the contents is added before the period, prefixed by a comma and a space. </p> <p> Input: </p> <pre><member name="M:Jedi.System.MyClass.#ctor"> <overloads> <ctor /> </overloads> <summary> <ctor>setting it up for recursive searching</ctor> </summary> </member></pre> <p> Output: </p> <pre><member name="M:Jedi.System.MyClass.#ctor"> <overloads> Initializes a new instance of the <see cref="T:Jedi.System.MyClass" /> class. </overloads> <summary> Initializes a new instance of the <see cref="T:Jedi.System.MyClass" /> class, setting it up for recursive searching. </summary> </member></pre> <p> </p> <h2><b>eventref</b></h2> <p> The <b>eventref</b> tag creates a reference to an event. It accepts various attributes that customize the behavior and provide information about what event to create a link to. The <b>eventref</b> tag is a specialized version of the <b>ref</b> base tag. Below a list of attributes. Attributes colored red are required. </p> <p> <ul> <li> Use the <b><i><font color="red">name</font></i></b> attribute (or the <b><i>member</i></b> attribute) to specify the event to reference. This should be the simple event name, without the declaring class name. </li> <li> Use the <b><i>type</i></b> attribute to specify the type in which the event to reference is declared. This should be the namespace-qualified class name. If this attribute is omitted, the type of the current member is assumed. </li> <li> Use the <b><i>reftype</i></b> attribute to specify whether the type should be referenced separately. This should be either <code>1</code>, <code>true</code> or <code>yes</code>; any other value is interpreted as no. If the <b><i>type</i></b> attribute was omitted or equals the current type, this attribute will be ignored. </li> </ul> </p> <p>Input:</p> <pre><member name="M:System.TestClass.OnMyEvent"> <summary> Raises the <eventref name="MyEvent" /> event. </summary> </member></pre> <p>Output:</p> <pre><member name="M:System.TestClass.OnMyEvent"> <summary> Raises the <see cref="E:System.TestClass.MyEvent" /> event. </summary> </member></pre> <p> </p> <h2><b>fieldref</b></h2> <p> The <b>fieldref</b> tag creates a reference to a field. It accepts various attributes that customize the behavior and provide information about what field to create a link to. The <b>fieldref</b> tag is a specialized version of the <b>ref</b> base tag. Below a list of attributes. Attributes colored red are required. </p> <p> <ul> <li> Use the <b><i><font color="red">name</font></i></b> attribute (or the <b><i>member</i></b> attribute) to specify the field to reference. This should be the simple field name, without the declaring class name. </li> <li> Use the <b><i>type</i></b> attribute to specify the type in which the field to reference is declared. This should be the namespace-qualified class name. If this attribute is omitted, the type of the current member is assumed. </li> <li> Use the <b><i>reftype</i></b> attribute to specify whether the type should be referenced separately. This should be either <code>1</code>, <code>true</code> or <code>yes</code>; any other value is interpreted as no. If the <b><i>type</i></b> attribute was omitted or equals the current type, this attribute will be ignored. </li> </ul> </p> <p>Input:</p> <pre><member name="M:System.TestClass.MyMethod"> <summary> Increases the <fieldref name="Version" /> field. </summary> </member></pre> <p>Output:</p> <pre><member name="M:System.TestClass.MyMethod"> <summary> Increases the <see cref="F:System.TestClass.Version" /> field. </summary> </member></pre> <p> </p> <h2><b>include</b></h2> <p> The <b>include</b> tag, though part of the Microsoft specification, is processed by the tool. This is because in normal situations, the compiler will have processed the element before it gets written to the XML file. The Delphi compiler doesn't process any tags but just outputs them to the XML file. </p> <p> Beside the normal usage and behavior, the JediDoc tool has extended the syntax to allow for replacing certain strings with other strings. It does this in two distinct ways: <ul> <li> using arg<i>n</i> attributes, where <i>n</i> can be any integer number. The attribute value will replace any occurance of the <code>{<i>n</i>}</code> string in the included section, including in element or attribute names and attribute values. </li> <li> using the <b>replace</b> tag inside the include element. See the explanation for the <b>replace</b> tag elsewhere in this document. </li> </ul> Note that both ways work with the same list. Therefore, using an <code>arg0</code> attribute would be identical to using a replace element with <code>'{0}'</code> as the search string. Because the replacement list requires unique sources, you can not use both <code>arg0</code> and <code>'{0}'</code>, but <code>arg0</code> and <code>'{1}'</code> would be perfectly valid. </p> <p>Input:</p> <pre><include file="snippets.xml" path="/snippets/commonmembers/*" arg0="Test"> <replace source="{1}"> Replacement for argument <b>1</b>, complete with XML tags. </replace> </include></pre> <p>Output:</p> <p class="prebackgnd"> All child elements of the <b>commonmembers</b> element (which is a child element of the <b>snippets</b> root element). Any occurance of the <code>{0}</code> string in the XML fragment will be replaced with <code>Test</code>. Any occurance of the <code>{1}</code> string in the XML fragment will be replaced with <code>Replacement for argument <b>1</b>, complete with XML tags.</code>. </p> <p> </p> <h2><b>methodref</b></h2> <p> The <b>methodref</b> tag creates a reference to a method. It accepts various attributes that customize the behavior and provide information about what method to create a link to. The <b>methodref</b> tag is a specialized version of the <b>ref</b> base tag. Below a list of attributes. Attributes colored red are required. </p> <p> <ul> <li> Use the <b><i><font color="red">name</font></i></b> attribute (or the <b><i>member</i></b> attribute) to specify the method to reference. This should be the simple method name, without the declaring class name. </li> <li> Use the <b><i>type</i></b> attribute to specify the type in which the method to reference is declared. This should be the namespace-qualified class name. If this attribute is omitted, the type of the current member is assumed. </li> <li> Use the <b><i>reftype</i></b> attribute to specify whether the type should be referenced separately. This should be either <code>1</code>, <code>true</code> or <code>yes</code>; any other value is interpreted as no. If the <b><i>type</i></b> attribute was omitted or equals the current type, this attribute will be ignored. </li> </ul> </p> <p>Input:</p> <pre><member name="M:System.TestClass.MyMethod"> <summary> Calls the <methodref name="MySecondMethod(System.Int32)" /> method. </summary> </member></pre> <p>Output:</p> <pre><member name="M:System.TestClass.MyMethod"> <summary> Calls the <see cref="M:System.TestClass.MySecondMethod(System.Int32)" /> method. </summary> </member></pre> <p> </p> <h2><b>option</b></h2> <p> The first occurance of the <b>option</b> tag within a group will result in its contents being placed inside <b><para></b> tags. Any following occurrence, immediately following the previous one, will also be placed inside <b><para></b> tags, but the fragment <code><para>-or-</para></code> will be added before the new paragraph. </p> <p> There are two additional tags that perform the same expansion: the <b><case></b> tag and the <b><condition></b> tag. Within a group, the three tags can be freely mixed. </p> <p>Input:</p> <pre><returns> <option>An empty string if nothing was found</option> <option>A string representing the found item.</option> </returns></pre> <p>Output:</p> <pre><returns> <para>An empty string if nothing was found</para> <para>-or-</para> <para>A string representing the found item.</para> </returns></pre> <p> </p> <h2><b>propertyref</b></h2> <p> The <b>propertyref</b> tag creates a reference to a property. It accepts various attributes that customize the behavior and provide information about what property to create a link to. The <b>propertyref</b> tag is a specialized version of the <b>ref</b> base tag. Below a list of attributes. Attributes colored red are required. </p> <p> <ul> <li> Use the <b><i><font color="red">name</font></i></b> attribute (or the <b><i>member</i></b> attribute) to specify the property to reference. This should be the simple property name, without the declaring class name. </li> <li> Use the <b><i>type</i></b> attribute to specify the type in which the property to reference is declared. This should be the namespace-qualified class name. If this attribute is omitted, the type of the current member is assumed. </li> <li> Use the <b><i>reftype</i></b> attribute to specify whether the type should be referenced separately. This should be either <code>1</code>, <code>true</code> or <code>yes</code>; any other value is interpreted as no. If the <b><i>type</i></b> attribute was omitted or equals the current type, this attribute will be ignored. </li> </ul> </p> <p>Input:</p> <pre><member name="M:System.TestClass.MyMethod"> <summary> Reads the <propertyref name="MyProperty" /> property to determine whether it should do something. </summary> </member></pre> <p>Output:</p> <pre><member name="M:System.TestClass.MyMethod"> <summary> Reads the <see cref="P:System.TestClass.MyProperty" /> property to determine whether it should do something. </summary> </member></pre> <p> </p> <h2><b>ref</b></h2> <p> The <b>ref</b> tag creates a reference to a member. It accepts various attributes that customize the behavior and provide information about what member to create a link to. The <b>ref</b> tag is the common base tag for the <b>eventref</b>, <b>fieldref</b>, <b>methodref</b>, <b>propertyref</b> and <b>typeref</b> tags, which are specialized versions of this tag. Below a list of attributes. Attributes colored red are required. </p> <p> <ul> <li> Use the <b><i><font color="red">memberType</font></i></b> attribute to specify what type of member to reference. Only the first character of the attribute value is considered, and it must be one of the following: <code>F</code>, <code>E</code>, <code>M</code>, <code>P</code> or <code>T</code>. <li> Use the <b><i><font color="red">member</font></i></b> attribute (or the <b><i>name</i></b> attribute) to specify the property to reference. This should be the simple property name, without the declaring class name. </li> <li> Use the <b><i>type</i></b> attribute to specify the type in which the property to reference is declared. This should be the namespace-qualified class name. If this attribute is omitted, the type of the current member is assumed. </li> <li> Use the <b><i>reftype</i></b> attribute to specify whether the type should be referenced separately. This should be either <code>1</code>, <code>true</code> or <code>yes</code>; any other value is interpreted as no. If the <b><i>type</i></b> attribute was omitted or equals the current type, this attribute will be ignored. </li> </ul> </p> <p>Input:</p> <pre><ref type="T:System.DateTime" member="MaxDate" memberType = "field" reftype="1" /></pre> <p>Output:</p> <pre><see cref="T:System.DateTime" />.<see cref="F:System.DateTime.MaxDate" /></pre> <p> </p> <h2><b>replace</b></h2> <p> The <b>replace</b> tag is used inside the <b>include</b> tag to specify replacement texts for included snippets. The tag expects a <b><i>source</i></b> attribute specifying the text to find. The contents of the tag will replace any occurance of the search text. </p> <p>For an example, see the explanation of the <b>include</b> tag elsewhere in this document.</p> <p> </p> <h2><b>true-if</b></h2> <p> The <b>true-if</b> tag expands to the common text used to specify when a parameter or return value should be true. The tag requires contents to specify that condition. </p> <p>Input:</p> <pre><true-if>the search should be recursive</true-if></pre> <p>Output:</p> <pre><see langword="true" /> if the search should be recursive; <see langword="false" /> otherwise.</pre> <p> </p> <h2><b>see-class</b></h2> <p>The <b>see-class</b> tag creates a link to the topic page of the current class.</p> <p>Input:</p> <pre><member name="M:System.Class.Method"> <summary> Creates and returns a new instance of the <see-class /> class. </summary> </member></pre> <p>Output:</p> <pre><member name="M:System.Class.Method"> <summary> Creates and returns a new instance of the <see cref="T:System.Class" /> class. </summary> </member></pre> <p> </p> <h2><b>see-ns</b></h2> <p>The <b>see-ns</b> tag creates a link to the topic page of the current namespace.</p> <p>Input:</p> <pre><member name="T:System.Class"> <remarks> Like the other classes in the <see-ns /> namespace, this class does nothing interesting. </remarks> </member></pre> <p>Output:</p> <pre><member name="T:System.Class"> <remarks> Like the other classes in the <see cref="N:System" /> namespace, this class does nothing interesting. </remarks> </member></pre> <p> </p> <h2><b>see-self</b></h2> <p>The <b>see-self</b> tag creates a link to the topic page of the current member.</p> <p>Input:</p> <pre><member name="M:System.Class.Method"> <remarks> The <see-self /> method will create a new instance. </remarks> </member></pre> <p>Output:</p> <pre><member name="M:System.Class.Method"> <remarks> The <see cref="M:System.Class.Method" /> method will create a new instance. </remarks> </member></pre> <p> </p> <h2><b>typeref</b></h2> <p> The <b>typeref</b> tag creates a reference to a type. It accepts various attributes that customize the behavior and provide information about what type to create a link to. The <b>typeref</b> tag is a specialized version of the <b>ref</b> base tag. Below a list of attributes. You need to specify either the <b><i>name</i></b> attribute (to refer to a nested type within the current class) or the <b><i>type</i></b> attribute, though specifying both are allowed (the two values will be concatenated to form the final type to reference). </p> <p> <ul> <li> Use the <b><i>name</i></b> attribute (or the <b><i>member</i></b> attribute) to specify the type to reference. This should be the simple type name, without the declaring class name. </li> <li> Use the <b><i>type</i></b> attribute to specify the type in which the type to reference is declared. This should be the namespace-qualified class name. If this attribute is omitted, the type of the current member is assumed. </li> </ul> </p> <p>Input:</p> <pre><member name="M:System.TestClass.MyMethod"> <summary> Returns a <typeref name="NestedType" />. </summary> </member></pre> <p>Output:</p> <pre><member name="M:System.TestClass.MyMethod"> <summary> Returnss a <see cref="T:System.TestClass.NestedType" />. </summary> </member></pre> <p> </p> </body> </html> Index: frameleft.htm =================================================================== RCS file: /cvsroot/jedidotnet/web/frameleft.htm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** frameleft.htm 28 Nov 2004 14:49:37 -0000 1.1 --- frameleft.htm 9 Jul 2005 09:34:14 -0000 1.2 *************** *** 14,17 **** --- 14,18 ---- <img border="0" src="images/dot.gif" width="11" height="11"><a href="http://delphi.newswhat.com/geoxml/forumlistgroups?area=JEDI"> Web Newsgroups</a><br> <img border="0" src="images/dot.gif" width="11" height="11"><a href="help/index.html"> Online Help</a><br> + <img border="0" src="images/dot.gif" width="11" height="11"><a href="jedidoc.tags.htm" target="main"> JediDoc tags</a><br> <img border="0" src="images/dot.gif" width="11" height="11"><a href="http://homepages.borland.com/jedi/issuetracker/view_all_bug_page.php"> Bug Tracker</a><br> <img border="0" src="images/dot.gif" width="11" height="11"><a href="http://cvs.sourceforge.net/viewcvs.py/jedidotnet/main/"> Web CVS</a><br> |
From: Marcel B. <jed...@us...> - 2005-06-25 13:59:36
|
Update of /cvsroot/jedidotnet/tools/JediDoc/source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29745/tools/JediDoc/source Modified Files: JediDoc.System.Xml.Reflection.pas Log Message: Still some InnerText instead of InnerXml occurrences Index: JediDoc.System.Xml.Reflection.pas =================================================================== RCS file: /cvsroot/jedidotnet/tools/JediDoc/source/JediDoc.System.Xml.Reflection.pas,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** JediDoc.System.Xml.Reflection.pas 25 Jun 2005 13:15:54 -0000 1.5 --- JediDoc.System.Xml.Reflection.pas 25 Jun 2005 13:59:27 -0000 1.6 *************** *** 276,285 **** begin frag := doc.CreateDocumentFragment; ! if ctorNode.InnerText.Trim.Length = 0 then frag.InnerXml := 'Initializes a new instance of the <see-class /> class.' else frag.InnerXml := System.String.Format( 'Initializes a new instance of the <see-class /> class, {0}.', ! ctorNode.InnerText.Trim); ctorNode.ParentNode.InsertBefore(frag, ctorNode); removeList.Add(ctorNode); --- 276,285 ---- begin frag := doc.CreateDocumentFragment; ! if ctorNode.InnerXml.Trim.Length = 0 then frag.InnerXml := 'Initializes a new instance of the <see-class /> class.' else frag.InnerXml := System.String.Format( 'Initializes a new instance of the <see-class /> class, {0}.', ! ctorNode.InnerXml.Trim); ctorNode.ParentNode.InsertBefore(frag, ctorNode); removeList.Add(ctorNode); *************** *** 312,316 **** if not Assigned(attr) then raise Exception.Create('Missing ''source'' attribute in the ''replace'' tag'); ! customList.Add(attr.Value, replaceNode.InnerText); end; Replace(XmlElement(importedNode), customList); --- 312,316 ---- if not Assigned(attr) then raise Exception.Create('Missing ''source'' attribute in the ''replace'' tag'); ! customList.Add(attr.Value, replaceNode.InnerXml); end; Replace(XmlElement(importedNode), customList); |
From: Marcel B. <jed...@us...> - 2005-06-25 13:17:13
|
Update of /cvsroot/jedidotnet/docs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6651/docs Modified Files: Jedi.Timers.Schedules.xml Log Message: Updated Jedi.Timers.Schedules documentation Index: Jedi.Timers.Schedules.xml =================================================================== RCS file: /cvsroot/jedidotnet/docs/Jedi.Timers.Schedules.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Jedi.Timers.Schedules.xml 23 Jun 2005 18:43:32 -0000 1.1 --- Jedi.Timers.Schedules.xml 25 Jun 2005 13:17:03 -0000 1.2 *************** *** 2,15 **** <!--Timestamp most recent auto generation: 2005-06-19 06:13:14 UTC--> <members> - <member name="T:Jedi.Timers.DaySchedule"> - <summary> - Schedule to select single days within an optional parent schedule. - </summary> - </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Day" arg1="day" arg2="days" ! arg3="64" /> <member name="M:Jedi.Timers.DaySchedule.GetNextImpl(System.DateTime,System.DateTime,System.DateTime)"> <exclude /> --- 2,12 ---- <!--Timestamp most recent auto generation: 2005-06-19 06:13:14 UTC--> <members> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Day" arg1="day" arg2="days" ! arg3="64"> ! <replace source="{class_remarks" /> ! </include> <member name="M:Jedi.Timers.DaySchedule.GetNextImpl(System.DateTime,System.DateTime,System.DateTime)"> <exclude /> *************** *** 20,37 **** <member name="T:Jedi.Timers.FixedIntervalSchedule"> <summary> </summary> </member> <member name="M:Jedi.Timers.FixedIntervalSchedule.#ctor(System.Int64,System.Int64,System.Int64,Jedi.Timers.Schedule[],Jedi.Timers.FixedIntervalSchedule.ParamInTicks)"> <summary> </summary> <param name="start"> </param> <param name="stop"> </param> <param name="span"> </param> ! <param name="schedules"> ! </param> <param name="paramsInTicks"> </param> </member> --- 17,49 ---- <member name="T:Jedi.Timers.FixedIntervalSchedule"> <summary> + The base class for schedules with a fixed interval. </summary> + <remarks> + This class functions as the base class for any schedule having a fixed interval; that is, intervals that will + always result in the same increment. This is the case for nearly all schedule classes presented in this namespace, + except for the month and year schedules (incrementing with 1 month would result in an increment of 28, 29, 30 or + 31 days, depending on the month and year). + </remarks> </member> <member name="M:Jedi.Timers.FixedIntervalSchedule.#ctor(System.Int64,System.Int64,System.Int64,Jedi.Timers.Schedule[],Jedi.Timers.FixedIntervalSchedule.ParamInTicks)"> <summary> + <ctor /> </summary> <param name="start"> + The start offset of the schedule, relative to the start of the optional parent schedule. This value can be either + in ticks or in schedule units. The <paramref name="paramsInTicks" /> parameter indicates which. </param> <param name="stop"> + The end offset of the schedule, relative to the start of the optional parent schedule. This value can be either + in ticks or in schedule units. The <paramref name="paramsInTicks" /> parameter indicates which. </param> <param name="span"> + The interval between selected dates. This value can be either in ticks or in schedule units. The + <paramref name="paramsInTicks" /> parameter indicates which. </param> ! <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ParamSchedules/*' /> <param name="paramsInTicks"> + Indicates which of the <paramref name="start" />, <paramref name="stop" /> and <paramref name="span" /> + parameters are specified in ticks (100 nanosecond intervals). </param> </member> *************** *** 54,67 **** <member name="M:Jedi.Timers.FixedIntervalSchedule.InternalUnitInterval"> <summary> </summary> <returns> </returns> </member> ! <member name="P:Jedi.Timers.FixedIntervalSchedule.Interval"> ! <summary> ! </summary> ! <value> ! </value> ! </member> <member name="T:Jedi.Timers.FixedIntervalSchedule.ParamInTicks"> <summary> --- 66,86 ---- <member name="M:Jedi.Timers.FixedIntervalSchedule.InternalUnitInterval"> <summary> + Determines the interval in ticks (100 nanosecond intervals) for this schedule class. </summary> <returns> + An <see cref="T:System.Int64" /> indicating the 100 nanosecond interval for this schedule class. </returns> + <remarks> + The return value of this method specifies the time span used when the schedule selects a range for its child + schedules. It also serves as the multiplier for the constructor's start, stop and span parameters when they are + not specified in ticks. + </remarks> </member> ! <include ! file='snippets\Jedi.Timers.Schedules.xml' ! path='snippets/PropInterval/*' ! arg0="FixedInterval"> ! <replace source="{1}"><see cref="M:Jedi.Timers.FixedIntervalSchedule.InternalUnitInterval" /> increments</replace> ! </include> <member name="T:Jedi.Timers.FixedIntervalSchedule.ParamInTicks"> <summary> *************** *** 125,179 **** </value> </member> - <member name="T:Jedi.Timers.HourSchedule"> - <summary> - </summary> - </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Hour" arg1="hour" arg2="hours" ! arg3="64" /> <member name="M:Jedi.Timers.HourSchedule.InternalUnitInterval"> <exclude /> </member> - <member name="T:Jedi.Timers.MillisecondSchedule"> - <summary> - </summary> - </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Millisecond" arg1="millisecond" arg2="milliseconds" ! arg3="64" /> <member name="M:Jedi.Timers.MillisecondSchedule.InternalUnitInterval"> <exclude /> </member> - <member name="T:Jedi.Timers.MinuteSchedule"> - <summary> - </summary> - </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Minute" arg1="minute" arg2="minutes" ! arg3="64" /> <member name="M:Jedi.Timers.MinuteSchedule.InternalUnitInterval"> <exclude /> </member> - <member name="T:Jedi.Timers.MonthSchedule"> - <summary> - </summary> - </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Month" arg1="month" arg2="months" ! arg3="32" /> <member name="M:Jedi.Timers.MonthSchedule.FromMonths(System.Int32)"> <summary> </summary> <param name="months"> </param> <returns> </returns> </member> --- 144,194 ---- </value> </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Hour" arg1="hour" arg2="hours" ! arg3="64"> ! <replace source="{class_remarks}" /> ! </include> <member name="M:Jedi.Timers.HourSchedule.InternalUnitInterval"> <exclude /> </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Millisecond" arg1="millisecond" arg2="milliseconds" ! arg3="64"> ! <replace source="{class_remarks}" /> ! </include> <member name="M:Jedi.Timers.MillisecondSchedule.InternalUnitInterval"> <exclude /> </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Minute" arg1="minute" arg2="minutes" ! arg3="64"> ! <replace source="{class_remarks}" /> ! </include> <member name="M:Jedi.Timers.MinuteSchedule.InternalUnitInterval"> <exclude /> </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Month" arg1="month" arg2="months" ! arg3="32"> ! <replace source="{class_remarks}" /> ! </include> <member name="M:Jedi.Timers.MonthSchedule.FromMonths(System.Int32)"> <summary> + Converts a month number to a <see cref="T:System.DateTime" /> value. </summary> <param name="months"> + The month number to convert. </param> <returns> + A <see cref="T:System.DateTime" /> representing the first day of the month an year specified by the + <paramref name="months" /> parameter. </returns> </member> *************** *** 184,193 **** <exclude /> </member> ! <member name="P:Jedi.Timers.MonthSchedule.Interval"> ! <summary> ! </summary> ! <value> ! </value> ! </member> <member name="F:Jedi.Timers.MonthSchedule.MaxMonth"> <summary> --- 199,207 ---- <exclude /> </member> ! <include ! file='snippets\Jedi.Timers.Schedules.xml' ! path='snippets/PropInterval/*' ! arg0="Month" ! arg1="months" /> <member name="F:Jedi.Timers.MonthSchedule.MaxMonth"> <summary> *************** *** 294,302 **** <member name="T:Jedi.Timers.Schedule.Enumerator"> <summary> </summary> </member> <member name="M:Jedi.Timers.Schedule.Enumerator.#ctor(Jedi.Timers.Schedule,System.DateTime,System.Boolean)"> <summary> ! Initializes a new instance of the <see-class /> class. </summary> <param name="owner"> --- 308,317 ---- <member name="T:Jedi.Timers.Schedule.Enumerator"> <summary> + The enumerator used to enumerate the selected dates of a schedule. </summary> </member> <member name="M:Jedi.Timers.Schedule.Enumerator.#ctor(Jedi.Timers.Schedule,System.DateTime,System.Boolean)"> <summary> ! <ctor /> </summary> <param name="owner"> *************** *** 325,329 **** </summary> <value> ! A reference to a <see cref="T:jedi.Timers.Schedule" /> derivative that is the owner of the enumerator. </value> </member> --- 340,344 ---- </summary> <value> ! A reference to a <see cref="T:Jedi.Timers.Schedule" /> derivative that is the owner of the enumerator. </value> </member> *************** *** 370,375 **** </summary> <param name="from"> </param> ! <include file='Jedi.Timers.Schedules.xml' path='/members/member[@name="M:Jedi.Timers.Schedule.GetEnumerator"]/returns' /> </member> <member name="M:Jedi.Timers.Schedule.GetEnumerator(System.DateTime,System.Boolean)"> --- 385,393 ---- </summary> <param name="from"> + The date from which to start enumerating. </param> ! <include ! file='Jedi.Timers.Schedules.xml' ! path='/members/member[@name="M:Jedi.Timers.Schedule.GetEnumerator"]/returns' /> </member> <member name="M:Jedi.Timers.Schedule.GetEnumerator(System.DateTime,System.Boolean)"> *************** *** 378,384 **** entire schedule hierarchy, starting at a specific date/time. </summary> ! <include file='Jedi.Timers.Schedules.xml' path='/members/member[@name="M:Jedi.Timers.Schedule.GetEnumerator(System.DateTime)"]/param[@name="from"]' /> ! <include file='Jedi.Timers.Schedules.xml' path='/members/member[@name="M:Jedi.Timers.Schedule.GetEnumerator(System.Boolean)"]/param[@name="recursive"]' /> ! <include file='Jedi.Timers.Schedules.xml' path='/members/member[@name="M:Jedi.Timers.Schedule.GetEnumerator"]/returns' /> </member> <member name="M:Jedi.Timers.Schedule.GetLimitsFor(System.DateTime,System.DateTime@,System.DateTime@)"> --- 396,408 ---- entire schedule hierarchy, starting at a specific date/time. </summary> ! <include ! file='Jedi.Timers.Schedules.xml' ! path='/members/member[@name="M:Jedi.Timers.Schedule.GetEnumerator(System.DateTime)"]/param[@name="from"]' /> ! <include ! file='Jedi.Timers.Schedules.xml' ! path='/members/member[@name="M:Jedi.Timers.Schedule.GetEnumerator(System.Boolean)"]/param[@name="recursive"]' /> ! <include ! file='Jedi.Timers.Schedules.xml' ! path='/members/member[@name="M:Jedi.Timers.Schedule.GetEnumerator"]/returns' /> </member> <member name="M:Jedi.Timers.Schedule.GetLimitsFor(System.DateTime,System.DateTime@,System.DateTime@)"> *************** *** 406,410 **** <para> <see cref="T:System.DateTime" />.<see cref="F:System.DateTime.MaxValue" /> if the date does not lie within ! the schedule's defined range. </para> </param> --- 430,434 ---- <para> <see cref="T:System.DateTime" />.<see cref="F:System.DateTime.MaxValue" /> if the date does not lie within ! the schedule's, or one of its parent schedules', defined range. </para> </param> *************** *** 414,420 **** Determines the selection range for child schedules, considering this schedule only. </summary> ! <include file='Jedi.Timers.Schedules.xml' path='/members/member[@name="M:Jedi.Timers.Schedule.GetLimitsFor(System.DateTime,System.DateTime@,System.DateTime@)"]/param[@name="date"]' /> ! <include file='Jedi.Timers.Schedules.xml' path='/members/member[@name="M:Jedi.Timers.Schedule.GetLimitsFor(System.DateTime,System.DateTime@,System.DateTime@)"]/param[@name="start"]' /> ! <include file='Jedi.Timers.Schedules.xml' path='/members/member[@name="M:Jedi.Timers.Schedule.GetLimitsFor(System.DateTime,System.DateTime@,System.DateTime@)"]/param[@name="stop"]' /> <remarks> <para> --- 438,450 ---- Determines the selection range for child schedules, considering this schedule only. </summary> ! <include ! file='Jedi.Timers.Schedules.xml' ! path='/members/member[@name="M:Jedi.Timers.Schedule.GetLimitsFor(System.DateTime,System.DateTime@,System.DateTime@)"]/param[@name="date"]' /> ! <include ! file='Jedi.Timers.Schedules.xml' ! path='/members/member[@name="M:Jedi.Timers.Schedule.GetLimitsFor(System.DateTime,System.DateTime@,System.DateTime@)"]/param[@name="start"]' /> ! <include ! file='Jedi.Timers.Schedules.xml' ! path='/members/member[@name="M:Jedi.Timers.Schedule.GetLimitsFor(System.DateTime,System.DateTime@,System.DateTime@)"]/param[@name="stop"]' /> <remarks> <para> *************** *** 441,446 **** </param> <param name="recursive"> ! Flag to indicate whether child schedules are to be considered (<see langword="true" />) or not ! (<see langword="false" />) </param> <returns> --- 471,475 ---- </param> <param name="recursive"> ! <true-if>child schedules are to be considered</true-if> </param> <returns> *************** *** 448,453 **** <para>-or-</para> <para> ! <see cref="T:System.DateTime" />.<see cref="F:System.DateTime.MaxValue" /> if no more dates follow the one ! specified by the <paramref name="from" /> parameter. </para> </returns> --- 477,482 ---- <para>-or-</para> <para> ! <fieldref type="System.DateTime" name="MaxValue" reftype="1" /> if no more dates follow the one specified by the ! <paramref name="from" /> parameter. </para> </returns> *************** *** 462,479 **** </param> <param name="offset"> ! <para>The starting date of the parent schedule</para> ! <para>-or-</para> ! <para> ! <see cref="T:System.DateTime" />.<see cref="F:System.DateTime.MinValue" /> if the schedule doesn't have a ! parent schedule. ! </para> </param> <param name="maxDate"> ! <para>The end date of the parent schedule</para> ! <para>-or-</para> ! <para> ! <see cref="T:System.DateTime" />.<see cref="F:System.DateTime.MaxValue" /> if the schedule doesn't have a ! parent schedule. ! </para> <para> Implementers are not required to adjust the return value if it happens to be greater than this parameter. --- 491,504 ---- </param> <param name="offset"> ! <option>The starting date of the parent schedule</option> ! <option> ! <fieldref type="System.DateTime" name="MinValue" reftype="1" /> if the schedule doesn't have a parent schedule. ! </option> </param> <param name="maxDate"> ! <option>The end date of the parent schedule</option> ! <option> ! <fieldref type="System.DateTime" name="MaxValue" reftype="1" /> if the schedule doesn't have a parent schedule. ! </option> <para> Implementers are not required to adjust the return value if it happens to be greater than this parameter. *************** *** 481,490 **** </param> <returns> ! <para>A <see cref="T:System.DateTime" /> representing the next date of this schedule</para> ! <para>-or-</para> ! <para> ! <see cref="T:System.DateTime" />.<see cref="F:System.DateTime.MaxValue" /> if the schedule doesn't have a ! next date. ! </para> </returns> <remarks> --- 506,513 ---- </param> <returns> ! <option>A <typeref type="System.DateTime" /> representing the next date of this schedule</option> ! <option> ! <fieldref type="System.DateTime" name="MaxValue" reftype="1" /> if the schedule doesn't have a next date. ! </option> </returns> <remarks> *************** *** 496,501 **** <para> Normally, the date returned by this method should be the same as the one returned in the start parameter of the ! <see cref="M:Jedi.Timers.Schedule.GetLimitsForImpl(System.DateTime,System.DateTime@,System.DateTime@)" /> ! method. </para> </remarks> --- 519,523 ---- <para> Normally, the date returned by this method should be the same as the one returned in the start parameter of the ! <methodref name="GetLimitsForImpl(System.DateTime,System.DateTime@,System.DateTime@)" /> method. </para> </remarks> *************** *** 510,515 **** </param> <returns> ! <see langword="true" /> if the date specified by the <paramref name="date" /> parameter is valid for this ! schedule; <see langword="false" /> otherwise. </returns> </member> --- 532,536 ---- </param> <returns> ! <true-if>the date specified by the <paramref name="date" /> parameter is valid for this schedule</true-if>. </returns> </member> *************** *** 520,525 **** <remarks> <para> ! This method will increment the <see cref="F:Jedi.Timers.Schedules.Schedule.FVersion" /> field and ! call the <see cref="M:Jedi.Timers.Schedules.Schedule.OnChanged" /> method. </para> <para> --- 541,546 ---- <remarks> <para> ! This method will increment the <fieldref name="FVersion" /> field and call the <methodref name="OnChanged" /> ! method. </para> <para> *************** *** 531,535 **** <member name="M:Jedi.Timers.Schedule.OnChanged"> <summary> ! Raises the <see cref="E:Jedi.Timers.Schedule.Changed" /> event. </summary> </member> --- 552,556 ---- <member name="M:Jedi.Timers.Schedule.OnChanged"> <summary> ! Raises the <eventref name="Changed" /> event. </summary> </member> *************** *** 539,545 **** </summary> <value> ! <para>The <see cref="T:Jedi.Timers.Schedule" /> (or derivative) that is the owner of this schedule</para> ! <para>-or-</para> ! <para><see langword="null" /> if this schedule is at the root of the hierarchy.</para> </value> </member> --- 560,565 ---- </summary> <value> ! <option>The <typeref /> (or derivative) that is the owner of this schedule</option> ! <option><see langword="null" /> if this schedule is at the root of the hierarchy.</option> </value> </member> *************** *** 665,701 **** <exclude /> </member> - <member name="T:Jedi.Timers.SecondSchedule"> - <summary> - </summary> - </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Second" arg1="second" arg2="seconds" ! arg3="64" /> <member name="M:Jedi.Timers.SecondSchedule.InternalUnitInterval"> <exclude /> </member> - <member name="T:Jedi.Timers.TickSchedule"> - <summary> - </summary> - </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Tick" arg1="tick (100 nanoseconds)" arg2="ticks (multiples of 100 nanoseconds)" ! arg3="64" /> <member name="M:Jedi.Timers.TickSchedule.InternalUnitInterval"> <exclude /> </member> - <member name="T:Jedi.Timers.WeekSchedule"> - <summary> - </summary> - </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Week" arg1="week" arg2="weeks" ! arg3="64" /> <member name="P:Jedi.Timers.WeekSchedule.FirstDayOfWeek"> <summary> --- 685,715 ---- <exclude /> </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Second" arg1="second" arg2="seconds" ! arg3="64"> ! <replace source="{class_remarks}" /> ! </include> <member name="M:Jedi.Timers.SecondSchedule.InternalUnitInterval"> <exclude /> </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Tick" arg1="tick (100 nanoseconds)" arg2="ticks (multiples of 100 nanoseconds)" ! arg3="64"> ! <replace source="{class_remarks}" /> ! </include> <member name="M:Jedi.Timers.TickSchedule.InternalUnitInterval"> <exclude /> </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Week" arg1="week" arg2="weeks" ! arg3="64"> ! <replace source="{class_remarks}" /> ! </include> <member name="P:Jedi.Timers.WeekSchedule.FirstDayOfWeek"> <summary> *************** *** 738,750 **** </summary> </member> - <member name="T:Jedi.Timers.YearSchedule"> - <summary> - </summary> - </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Year" arg1="year" arg2="years" ! arg3="32" /> <member name="M:Jedi.Timers.YearSchedule.GetLimitsForImpl(System.DateTime,System.DateTime@,System.DateTime@)"> <exclude /> --- 752,762 ---- </summary> </member> <include file='snippets\Jedi.Timers.Schedules.xml' path='/snippets/ScheduleCommonMembers/*' arg0="Year" arg1="year" arg2="years" ! arg3="32"> ! <replace source="{class_remarks}" /> ! </include> <member name="M:Jedi.Timers.YearSchedule.GetLimitsForImpl(System.DateTime,System.DateTime@,System.DateTime@)"> <exclude /> *************** *** 753,762 **** <exclude /> </member> ! <member name="P:Jedi.Timers.YearSchedule.Interval"> ! <summary> ! </summary> ! <value> ! </value> ! </member> <member name="M:Jedi.Timers.YearSchedule.ScheduleLimit"> <exclude /> --- 765,773 ---- <exclude /> </member> ! <include ! file='snippets\Jedi.Timers.Schedules.xml' ! path='snippets/PropInterval/*' ! arg0="Month" ! arg1="months" /> <member name="M:Jedi.Timers.YearSchedule.ScheduleLimit"> <exclude /> |
From: Marcel B. <jed...@us...> - 2005-06-25 13:17:12
|
Update of /cvsroot/jedidotnet/docs/snippets In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6651/docs/snippets Modified Files: Jedi.Timers.Schedules.xml Log Message: Updated Jedi.Timers.Schedules documentation Index: Jedi.Timers.Schedules.xml =================================================================== RCS file: /cvsroot/jedidotnet/docs/snippets/Jedi.Timers.Schedules.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Jedi.Timers.Schedules.xml 23 Jun 2005 18:43:32 -0000 1.1 --- Jedi.Timers.Schedules.xml 25 Jun 2005 13:17:03 -0000 1.2 *************** *** 1,2 **** --- 1,3 ---- + <?xml version="1.0" encoding="utf-8"?> <snippets> <!-- interval parameter snippet *************** *** 35,38 **** --- 36,53 ---- </param> </ParamStop> + <!-- Interval property snippet + arg0 = class name (only the part before the Schedule suffix, so Day, Week, Month, etc) + arg1 = interval unit in plural form + --> + <PropInterval> + <member name="P:Jedi.Timers.{0}Schedule.Interval"> + <summary> + The schedule's selection interval in {1}. + </summary> + <value> + The schedule's selection interval in {1}. + </value> + </member> + </PropInterval> <!-- Schedule common members snippet arg0 = class name (only the part before the Schedule suffix, so Day, Week, Month, etc) *************** *** 40,45 **** --- 55,74 ---- arg2 = interval unit in plural form (eg. days, weeks or months) arg3 = bit size of integer parameters (either 32 or 64) + {class_remarks} = additional paragraph(s) to add to the remarks section of the class --> <ScheduleCommonMembers> + <member name="T:Jedi.Timers.{0}Schedule"> + <summary> + Schedule to select single {2} within an optional parent schedule. + </summary> + <remarks> + <para> + The <see-class /> selects every <i>n</i> {2} between a start and end point. If the schedule doesn't have child + schedules, it will select the start of the {1}, otherwise it will limit the child schedule(s) to the entire + {1}. + </para> + {class_remarks} + </remarks> + </member> <member name="M:Jedi.Timers.{0}Schedule.#ctor"> <overloads> |