From 8610b402758d3c7944c477d5388c5ecab859bd7d Mon Sep 17 00:00:00 2001 From: Andre Rodrigues Date: Wed, 3 Nov 2010 14:26:51 -0700 Subject: [PATCH 1/4] Removing unused web.config files. --HG-- branch : dev --- src/Orchard.Web/Modules/Lucene/Web.config | 32 ------------------- .../Modules/Orchard.Blogs/Web.config | 32 ------------------- .../Modules/Orchard.CodeGeneration/Web.config | 32 ------------------- .../Modules/Orchard.Comments/Web.config | 32 ------------------- .../Modules/Orchard.ContentQueries/Web.config | 32 ------------------- .../Orchard.ContentTypes/Web.Debug.config | 30 ----------------- .../Orchard.ContentTypes/Web.Release.config | 31 ------------------ .../Modules/Orchard.ContentTypes/Web.config | 32 ------------------- .../Modules/Orchard.Email/Web.config | 22 ------------- .../Modules/Orchard.Experimental/Web.config | 32 ------------------- .../Modules/Orchard.Indexing/Web.config | 32 ------------------- .../Modules/Orchard.Media/Web.config | 32 ------------------- .../Modules/Orchard.Migrations/Web.config | 32 ------------------- .../Modules/Orchard.Modules/Web.config | 32 ------------------- .../Modules/Orchard.MultiTenancy/Web.config | 32 ------------------- .../Modules/Orchard.Packaging/Web.config | 32 ------------------- .../Modules/Orchard.Roles/Web.config | 32 ------------------- .../Modules/Orchard.Search/Web.config | 32 ------------------- .../Modules/Orchard.Setup/Web.config | 32 ------------------- .../Modules/Orchard.Tags/Web.config | 32 ------------------- .../Modules/Orchard.Themes/Web.config | 32 ------------------- .../Modules/Orchard.Users/Web.config | 32 ------------------- .../Modules/Orchard.Widgets/Web.config | 32 ------------------- .../Modules/Orchard.jQuery/Web.config | 32 ------------------- src/Orchard.Web/Modules/TinyMce/Web.config | 32 ------------------- 25 files changed, 787 deletions(-) delete mode 100644 src/Orchard.Web/Modules/Lucene/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Blogs/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.CodeGeneration/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Comments/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.ContentQueries/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.ContentTypes/Web.Debug.config delete mode 100644 src/Orchard.Web/Modules/Orchard.ContentTypes/Web.Release.config delete mode 100644 src/Orchard.Web/Modules/Orchard.ContentTypes/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Email/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Experimental/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Indexing/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Media/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Migrations/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Modules/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.MultiTenancy/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Packaging/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Roles/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Search/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Setup/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Tags/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Themes/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Users/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.Widgets/Web.config delete mode 100644 src/Orchard.Web/Modules/Orchard.jQuery/Web.config delete mode 100644 src/Orchard.Web/Modules/TinyMce/Web.config diff --git a/src/Orchard.Web/Modules/Lucene/Web.config b/src/Orchard.Web/Modules/Lucene/Web.config deleted file mode 100644 index 489780384..000000000 --- a/src/Orchard.Web/Modules/Lucene/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Web.config b/src/Orchard.Web/Modules/Orchard.Blogs/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Web.config b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Web.config deleted file mode 100644 index 97c1c726a..000000000 --- a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Web.config b/src/Orchard.Web/Modules/Orchard.Comments/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/Orchard.Comments/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.ContentQueries/Web.config b/src/Orchard.Web/Modules/Orchard.ContentQueries/Web.config deleted file mode 100644 index aeb6287ed..000000000 --- a/src/Orchard.Web/Modules/Orchard.ContentQueries/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Web.Debug.config b/src/Orchard.Web/Modules/Orchard.ContentTypes/Web.Debug.config deleted file mode 100644 index 962e6b73a..000000000 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Web.Debug.config +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Web.Release.config b/src/Orchard.Web/Modules/Orchard.ContentTypes/Web.Release.config deleted file mode 100644 index 141832ba7..000000000 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Web.Release.config +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Web.config b/src/Orchard.Web/Modules/Orchard.ContentTypes/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Email/Web.config b/src/Orchard.Web/Modules/Orchard.Email/Web.config deleted file mode 100644 index 31fcd0c21..000000000 --- a/src/Orchard.Web/Modules/Orchard.Email/Web.config +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Experimental/Web.config b/src/Orchard.Web/Modules/Orchard.Experimental/Web.config deleted file mode 100644 index 97c1c726a..000000000 --- a/src/Orchard.Web/Modules/Orchard.Experimental/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Indexing/Web.config b/src/Orchard.Web/Modules/Orchard.Indexing/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/Orchard.Indexing/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Media/Web.config b/src/Orchard.Web/Modules/Orchard.Media/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/Orchard.Media/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Migrations/Web.config b/src/Orchard.Web/Modules/Orchard.Migrations/Web.config deleted file mode 100644 index 97c1c726a..000000000 --- a/src/Orchard.Web/Modules/Orchard.Migrations/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Modules/Web.config b/src/Orchard.Web/Modules/Orchard.Modules/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/Orchard.Modules/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Web.config b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Web.config b/src/Orchard.Web/Modules/Orchard.Packaging/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/Orchard.Packaging/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Web.config b/src/Orchard.Web/Modules/Orchard.Roles/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/Orchard.Roles/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Search/Web.config b/src/Orchard.Web/Modules/Orchard.Search/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/Orchard.Search/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Web.config b/src/Orchard.Web/Modules/Orchard.Setup/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/Orchard.Setup/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Web.config b/src/Orchard.Web/Modules/Orchard.Tags/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/Orchard.Tags/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Themes/Web.config b/src/Orchard.Web/Modules/Orchard.Themes/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/Orchard.Themes/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Users/Web.config b/src/Orchard.Web/Modules/Orchard.Users/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/Orchard.Users/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Web.config b/src/Orchard.Web/Modules/Orchard.Widgets/Web.config deleted file mode 100644 index e041a3c7c..000000000 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/Orchard.jQuery/Web.config b/src/Orchard.Web/Modules/Orchard.jQuery/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/Orchard.jQuery/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Orchard.Web/Modules/TinyMce/Web.config b/src/Orchard.Web/Modules/TinyMce/Web.config deleted file mode 100644 index cf1174676..000000000 --- a/src/Orchard.Web/Modules/TinyMce/Web.config +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From d0c48fa52db8ab76423e2a2bf89b4345dae31500 Mon Sep 17 00:00:00 2001 From: Andre Rodrigues Date: Wed, 3 Nov 2010 14:28:26 -0700 Subject: [PATCH 2/4] Medium Trust: Updating YAML binaries to allow partially trusted callers. --HG-- branch : dev --- lib/yaml/Yaml.dll | Bin 73728 -> 73728 bytes lib/yaml/YamlSerializer.XML | 2600 +++++++++++++++++------------------ lib/yaml/YamlSerializer.dll | Bin 139264 -> 139776 bytes 3 files changed, 1300 insertions(+), 1300 deletions(-) diff --git a/lib/yaml/Yaml.dll b/lib/yaml/Yaml.dll index 35c8216b07bff036dcc4a6148de27d021607d49d..d6cf21b26cf7155ae2d48d7275e7d3df9e8e0c4f 100644 GIT binary patch literal 73728 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 - - - Converts various types to / from string.
- I don't remember why this class was needed.... -
- - - object obj = GetObjectToConvert(); - - // Check if the type has [TypeConverter] attribute. - if( EasyTypeConverter.IsTypeConverterSpecified(type) ) { - - // Convert the object to string. - string s = EasyTypeConverter.ConvertToString(obj); - - // Convert the string to an object of the spific type. - object restored = EasyTypeConverter.ConvertFromString(s, type); - - Assert.AreEqual(obj, restored); - - } - - -
- - - Converts C# object to YamlNode - - - - object obj; - YamlNode node = YamlRepresenter.ObjectToNode(obj); - - - - - - Implements utility functions to instantiating YamlNode's - - - - var node_tree = seq( - str("abc"), - str("def"), - map( - str("key"), str("value"), - str("key2"), seq( str("value2a"), str("value2b") ) - ), - str("2"), // !!str - str("!!int", "2") - ); - - string yaml = node_tree.ToYaml(); - - // %YAML 1.2 - // --- - // - abc - // - def - // - key: value - // key2: [ value2a, value2b ] - // - "2" # !!str - // - 2 # !!int - // ... - - - - - - Create a scalar node. Tag is set to be "!!str". - - - - var node_tree = seq( - str("abc"), - str("def"), - map( - str("key"), str("value"), - str("key2"), seq( str("value2a"), str("value2b") ) - ), - str("2"), // !!str - str("!!int", "2") - ); - - string yaml = node_tree.ToYaml(); - - // %YAML 1.2 - // --- - // - abc - // - def - // - key: value - // key2: [ value2a, value2b ] - // - "2" # !!str - // - 2 # !!int - // ... - - - Value for the scalar node. - Created scalar node. - - - - Create a scalar node. - - Tag for the scalar node. - Value for the scalar node. - Created scalar node. - - - - Create a sequence node. Tag is set to be "!!seq". - - Child nodes. - Created sequence node. - - - - Create a sequence node. - - Child nodes. - Tag for the seuqnce. - Created sequence node. - - - - Create a mapping node. Tag is set to be "!!map". - - Sequential list of key/value pairs. - Created mapping node. - - - - Create a mapping node. - - Sequential list of key/value pairs. - Tag for the mapping. - Created mapping node. - - - - When reports syntax error by exception, this class is thrown. - - Sytax errors can also be reported by simply returing false with giving some warnings. - - - - - Initialize an instance of - - Error message. - - - - Base class to implement a parser class. - - It allows not very efficient but easy implementation of a text parser along - with a parameterized BNF productions. - - Parser specific state structure. - - - - Parse the using the - as the starting rule. - - Starting rule. - Text to be parsed. - - - - - Gets / sets source text to be parsed. - While parsing, this variable will not be changed. - The current position to be read by parser is represented by the field . - Namely, the next character to be read is text[p]. - - - - - The current reading position. - - The next character to be read by the parser is text[p]. - - Increase to reduce some part of source text . - - The current position is automatically reverted at rewinding. - - - Example to show how to reduce BNF reduction rule of ( "t" "e" "x" "t" ). - - return RewindUnless(()=> - text[p++] == 't' && - text[p++] == 'e' && - text[p++] == 'x' && - text[p++] == 't' - ); - - - - - - Use this variable to build some string data from source text. - - It will be automatically reverted at rewinding. - - - - - Individual-parser-specific state object. - - It will be automatically reverted at rewinding. - - If some action, in addition to simply restore the value of the state object, - is needed to recover the previous state, override - method. - - - - - Initialize , which represents line number to - start position of each line list. - - - - - Line number to start position list. - - - - - Reporting syntax error by throwing . - - template for the error message. - parameters if required - Because it throw exception, nothing will be returned in reality. - - - - Give warning if is true. - - By default, the warning will not be shown / stored to anywhere. - To show or log the warning, override . - - - - return - SomeObsoleteReductionRule() && - WarningIf( - context != Context.IndeedObsolete, - "Obsolete"); - - - If true, warning is given; otherwize do nothing. - template for the warning message. - parameters if required - Always true. - - - - Give warning if is false. - - By default, the warning will not be shown / stored to anywhere. - To show or log the warning, override . - - - - return - SomeObsoleteReductionRule() && - WarningUnless( - context != Context.NotObsolete, - "Obsolete"); - - - If false, warning is given; otherwize do nothing. - template for the warning message. - parameters if required - Always true. - - - - Give warning. - - By default, the warning will not be shown / stored to anywhere. - To show or log the warning, override . - - - - return - SomeObsoleteReductionRule() && - Warning("Obsolete"); - - - template for the warning message. - parameters if required - Always true. - - - - Invoked when warning was given while parsing. - - Override this method to display / store the warning. - - Warning message. - - - - Represents EBNF operator of "join", i.e. serial appearence of several rules. - - - This recoveres , , - when does not return true. - - If any specific operation is needed for rewinding, in addition to simply - recover the value of , override . - - If false is returned, the parser status is rewound. - true if returned true; otherwise false. - - name ::= first-name middle-name? last-name - - bool Name() - { - return RewindUnless(()=> - FirstName() && - Optional(MiddleName) && - LastName() - ); - } - - - - - - This method is called just after recovers . - Override it to do any additional operation for rewinding. - - - - - Represents EBNF operator of "*". - - Reduction rule to be repeated. - Always true. - - lines-or-empty ::= line* - - bool LinesOrEmpty() - { - return - Repeat(Line); - } - - - lines-or-empty ::= (text line-break)* - Note: Do not forget if several - rules are sequentially appears in operator. - - bool LinesOrEmpty() - { - return - Repeat(()=> - RewindUnless(()=> - Text() && - LineBreak() - ) - ); - } - - - - - - Represents EBNF operator of "+". - - Reduction rule to be repeated. - true if the rule matches; otherwise false. - - lines ::= line+ - - bool Lines() - { - return - Repeat(Line); - } - - - - lines ::= (text line-break)+ - - Note: Do not forget RewindUnless in Repeat operator. - - bool Lines() - { - return - Repeat(()=> - RewindUnless(()=> - Text() && - LineBreak() - ) - ); - } - - - - - - Represents n times repeatition. - - - four-lines ::= (text line-break){4} - - Note: Do not forget if several - rules are sequentially appears in operator. - - bool FourLines() - { - return - Repeat(4, ()=> - RewindUnless(()=> - Text() && - LineBreak() - ) - ); - } - - - Repetition count. - Reduction rule to be repeated. - true if the rule matches; otherwise false. - - - - Represents at least , at most times repeatition. - - - google ::= "g" "o"{2,100} "g" "l" "e" - Note: Do not forget if several - rules are sequentially appears in operator. - - bool Google() - { - return - RewindUnless(()=> - text[p++] == 'g' && - Repeat(2, 100, - RewindUnless(()=> - text[p++] == 'o' - ) - ) - text[p++] == 'g' && - text[p++] == 'l' && - text[p++] == 'e' - ); - } - - - Minimum repetition count. Negative value is treated as 0. - Maximum repetition count. Negative value is treated as positive infinity. - Reduction rule to be repeated. - true if the rule matches; otherwise false. - - - - Represents BNF operator "?". - - - file ::= header? body footer? - - Note: Do not forget if several - rules are sequentially appears in operator. - - bool File() - { - return - Optional(Header()) && - Body() && - Optional(Footer()); - } - - - Reduction rule that is optional. - Always true. - - - - Represents BNF operator "?" (WITH rewinding wrap). - - - file = header? body footer? - - Note: Do not forget if several - rules are sequentially appears in operator. - - bool File() - { - return - Optional(Header) && - Body() && - Optional(Footer); - } - - - Reduction rule that is optional. - Always true. - - - - Reduce one character if it is a member of the specified character set. - - Acceptable character set. - true if the rule matches; otherwise false. - - alpha ::= [A-Z][a-z]
- num ::= [0-9]
- alpha-num :: alpha | num
- word ::= alpha ( alpha-num )*
- - Func<char,bool> Alpha = Charset( c => - ( 'A' <= c && c <= 'Z' ) || - ( 'a' <= c && c <= 'z' ) - ); - Func<char,bool> Num = Charset( c => - '0' <= c && c <= '9' - ); - Func<char,bool> AlphaNum = Charset( c => - Alpha(c) || Num(c) - ); - bool Word() - { - return - Accept(Alpha) && - Repeat(AlphaNum); - // No need for RewindUnless - } - -
-
- - - Accepts a character 'c'. - - It can be also represented by text[p++] == c wrapped by . - - The character to be accepted. - true if the rule matches; otherwise false. - - YMCA ::= "Y" "M" "C" "A" - - bool YMCA() - { - return - RewindUnless(()=> - Accept('Y') && - Accept('M') && - Accept('C') && - Accept('A') - ); - } - - -or- - - bool YMCA() - { - return - RewindUnless(()=> - text[p++] == 'Y' && - text[p++] == 'M' && - text[p++] == 'C' && - text[p++] == 'A' - ); - } - - - - - - Accepts a sequence of characters. - - Sequence of characters to be accepted. - true if the rule matches; otherwise false. - - YMCA ::= "Y" "M" "C" "A" - - bool YMCA() - { - return - Accept("YMCA"); - } - - - - - - Represents sequence of characters. - - Sequence of characters to be accepted. - true if the rule matches; otherwise false. - - - - Represents BNF operator of "*". - - Character set to be accepted. - Always true. - - - - Represents BNF operator of "+". - - Character set to be accepted. - true if the rule matches; otherwise false. - - - - Represents n times repetition of characters. - - Character set to be accepted. - Repetition count. - true if the rule matches; otherwise false. - - - - Represents at least min times, at most max times - repetition of characters. - - Character set to be accepted. - Minimum repetition count. Negative value is treated as 0. - Maximum repetition count. Negative value is treated as positive infinity. - true if the rule matches; otherwise false. - - - - Represents BNF operator "?". - - Character set to be accepted. - Always true. - - - - Builds a performance-optimized table-based character set definition from a simple - but slow comparison-based definition. - - By default, the character table size is 0x100, namely only the characters of [\0-\xff] are - judged by using a character table and others are by the as-given slow comparisn-based definitions. - - To have maximized performance, locate the comparison for non-table based judgement first - in the definition as the example below. - - Use form to explicitly - specify the table size. - - This sample shows how to build a character set delegate. - - static class YamlCharsets: Charsets - { - Func<char, bool> cPrintable; - Func<char, bool> sWhite; - - static YamlCharsets() - { - cPrintable = CacheResult(c => - /* ( 0x10000 < c && c < 0x110000 ) || */ - ( 0xe000 <= c && c <= 0xfffd ) || - ( 0xa0 <= c && c <= 0xd7ff ) || - ( c < 0x100 && ( // to improve performance - c == 0x85 || - ( 0x20 <= c && c <= 0x7e ) || - c == 0x0d || - c == 0x0a || - c == 0x09 - ) ) - ); - sWhite = CacheResult(c => - c < 0x100 && ( // to improve performance - c == '\t' || - c == ' ' - ) - ); - } - } - - A simple but slow comparison-based definition of the charsert. - A performance-optimized table-based delegate built from the given . - - - - Builds a performance-optimized table-based character set definition from a simple - but slow comparison-based definition. - - Characters out of the table are judged by the as-given slow comparisn-based - definitions. - - So, to have maximized performance, locate the comparison for non-table based - judgement first in the definition as the example below. - - This sample shows how to build a character set delegate. - - static class YamlCharsets: Charsets - { - Func<char, bool> cPrintable; - Func<char, bool> sWhite; - - static YamlCharsets() - { - cPrintable = CacheResult(c => - /* ( 0x10000 < c && c < 0x110000 ) || */ - ( 0xe000 <= c && c <= 0xfffd ) || - ( 0xa0 <= c && c <= 0xd7ff ) || - ( c < 0x100 && ( // to improve performance - c == 0x85 || - ( 0x20 <= c && c <= 0x7e ) || - c == 0x0d || - c == 0x0a || - c == 0x09 - ) ) - ); - sWhite = CacheResult(c => - c < 0x100 && ( // to improve performance - c == '\t' || - c == ' ' - ) - ); - } - } - - Character table size. - A simple but slow comparison-based definition of the charsert. - A performance-optimized table-based delegate built from the given . - - - - Saves a part of the source text that is reduced in the . - If the rule does not match, nothing happends. - - Reduction rule to match. - If the matches, - the part of the source text reduced in the is set; - otherwise String.Empty is set. - true if matches; otherwise false. - - - - Saves a part of the source text that is reduced in the - and append it to . - If the rule does not match, nothing happends. - - Reduction rule to match. - true if matches; otherwise false. - - - - Saves a part of the source text that is reduced in the . - If the rule does not match, nothing happends. - - Reduction rule to match. - If matches, this delegate is invoked - with the part of the source text that is reduced in the - as the parameter. Do any action in the delegate. - true if matches; otherwise false. - - - bool SomeRule() - { - return - Save(()=> SubRule(), s => MessageBox.Show(s)); - } - - - - - Execute some action. - - Action to be done. - Always true. - - - bool SomeRule() - { - return - SubRule() && - Action(()=> do_some_action()); - } - - - - - Report error by throwing when the does not match. - - Some reduction rule that must match. - Error message as template - Parameters for template - Always true; otherwise an exception thrown. - - - - Report error by throwing when the does not match. - - Some reduction rule that must match. - Error message as template - Parameters for template - Always true; otherwise an exception is thrown. - - - - Report error by throwing when the does not match - and an additional condition is true. - - Some reduction rule that must match. - Additional condition: if this parameter is false, - rewinding occurs, instead of throwing exception. - Error message as template - Parameters for template - true if the reduction rule matches; otherwise false. - - - - Report error by throwing when is true. - - True to throw exception. - Error message as template - Parameters for template - Always true. - - - - Assign var = value and return true; - - Type of the variable and value. - Variable to be assigned. - Value to be assigned. - Always true. - - - - Get current position represented by raw and column. - - - - - Represents a position in a multiline text. - - - - - Raw in a text. - - - - - Column in a text. - - - - - Validates a text as a global tag in YAML. - - RFC4151 - The 'tag' URI Scheme> - - - - - Validates a text as a global tag in YAML. - - A candidate for a global tag in YAML. - True if is a valid global tag. - - - - Not used in this parser - - - - - Dictionary that automatically rehash when the content of a key is changed. - Keys of this dictionary must implement . - It also call back item addition and removal by and - events. - - Type of key. Must implements . - Type of value. - - - - A dictionary that returns or - from hash code. This is the main repository that stores the pairs. - If there are several entries that have same hash code for thir keys, - a is stored to hold all those entries. - Otherwise, a is stored. - - - - - A dictionary that returns hash code from the key reference. - The key must be the instance that - to one exsisting in the dictionary. - - - We store the hashes correspoinding to each key. So that when rehash, - we can find old hash code to quickly find the entry for the key. - It is also used to remember the number of keys exists in the dictionary. - - - - - Recalc hash key of the . - - The key to be rehash. The key must be the instance that - to one exsisting in the dictionary. - - - - Try to find entry for key (and value). - - key to find - if true, value matters - value to find - key not found - hash hit one entry and key found - hash hit several entries and key found - - - - Try to find entry for key (and value). - - key to find - if true, value matters - value to find - hash not found - hash hit one entry but key not found - hash hit one entry and key found - hash hit several entries but key not found - hash hit several entries and key found - - - - Collection that is readonly and invalidated when an item is - added to or removed from the dictionary. - - - - - A text parser for
- YAML Ain’t Markup Language (YAML™) Version 1.2
- 3rd Edition (2009-07-21)
- http://yaml.org/spec/1.2/spec.html
- - This class parse a YAML document and compose representing graph. -
- - - string yaml = LoadYamlSource(); - YamlParser parser = new YamlParser(); - Node[] result = null; - try { - result = parser.Parse(yaml); - ... - // you can reuse parser as many times you want - ... - - } catch( ParseErrorException e ) { - MessageBox.Show(e.Message); - } - if(result != null) { - ... - - } - - - - Currently, this parser violates the YAML 1.2 specification in the following points. - - line breaks are not normalized. - - omission of the final line break is allowed in plain / literal / folded text. - - ':' followed by ns-indicator is excluded from ns-plain-char. - -
- - - Initialize a YAML parser. - - - - - Parse YAML text and returns a list of . - - YAML text to be parsed. - A list of parsed from the given text - - - - Parse YAML text and returns a list of . - - YAML text to be parsed. - YAML Configuration to be used in parsing. - A list of parsed from the given text - - - - Add message in property. - - - - - - Invoked when unknown directive is found in YAML document. - - Name of the directive - Parameters for the directive - - - - Invoked when YAML directive is found in YAML document. - - Given version - - - - rewinding action - - - - - set status.tag with tag resolution - - - - - - - - set status.tag with verbatim tag value - - verbatim tag - - - - - Used when the parser resolves a tag for a scalar node from its value. - - New resolution rules can be add before calling method. - - - - - [105] - - - - - [106] - - - - - Warnings that are made while parsing a YAML text. - This property is cleared by new call for method. - - - - - additional fields to be rewound - - - - - tag for the next value (will be cleared when the next value is created) - - - - - anchor for the next value (will be cleared when the next value is created) - - - - - current value - - - - - anchor rewinding position - - - - - [22] - - - - - [23] - - - - - Construct YAML node tree that represents a given C# object. - - - - - Construct YAML node tree that represents a given C# object. - - to be converted to C# object. - to customize serialization. - - - - - Construct YAML node tree that represents a given C# object. - - to be converted to C# object. - Expected type for the root object. - to customize serialization. - - - - - Add string class two methods: .UriEscape(), .UriUnescape() - - Charset that is not escaped is represented NonUriChar member. - - NonUriChar = new Regex(@"[^0-9A-Za-z\-_.!~*'()\\;/?:@&=$,\[\]]"); - - - - - Escape the string in URI encoding format. - - String to be escaped. - Escaped string. - - - - Escape the string in URI encoding format. - - String to be escaped. - Escaped string. - - - - Unescape the string escaped in URI encoding format. - - String to be unescape. - Unescaped string. - - - - Escape / Unescape string in URI encoding format - - Charset that is not escaped is represented NonUriChar member. - - NonUriChar = new Regex(@"[^0-9A-Za-z\-_.!~*'()\\;/?:@&=$,\[\]]"); - - - - - Reset(); - SetupDefaultTagPrefixes(); - Add(tag_handle, tag_prefix); - verbatim_tag = Resolve(tag_handle, tag_name); - - - - - Converts YamlNode tree into yaml text. - - - - YamlNode node; - YamlPresenter.ToYaml(node); - - YamlNode node1; - YamlNode node2; - YamlNode node3; - YamlPresenter.ToYaml(node1, node2, node3); - - - - - - - object に代入されたクラスや構造体のメンバーに、リフレクションを - 解して簡単にアクセスできるようにしたクラス - - アクセス方法をキャッシュするので、繰り返し使用する場合に高速化が - 期待できる - - - - - Caches ObjectMemberAccessor instances for reuse. - - - - - - 指定した型へのアクセス方法を表すインスタンスを返す - キャッシュに存在すればそれを返す - キャッシュに存在しなければ新しく作って返す - 作った物はキャッシュされる - - クラスまたは構造体を表す型情報 - - - - - メンバ名と Accessor のペアを巡回する - - - - - - メンバへの読み書きを行うことができる - - オブジェクト - メンバの名前 - - Configuration to customize YAML serialization. @@ -2720,6 +1504,876 @@ The number of child nodes of the sequence. + + + Implements utility functions to instantiating YamlNode's + + + + var node_tree = seq( + str("abc"), + str("def"), + map( + str("key"), str("value"), + str("key2"), seq( str("value2a"), str("value2b") ) + ), + str("2"), // !!str + str("!!int", "2") + ); + + string yaml = node_tree.ToYaml(); + + // %YAML 1.2 + // --- + // - abc + // - def + // - key: value + // key2: [ value2a, value2b ] + // - "2" # !!str + // - 2 # !!int + // ... + + + + + + Create a scalar node. Tag is set to be "!!str". + + + + var node_tree = seq( + str("abc"), + str("def"), + map( + str("key"), str("value"), + str("key2"), seq( str("value2a"), str("value2b") ) + ), + str("2"), // !!str + str("!!int", "2") + ); + + string yaml = node_tree.ToYaml(); + + // %YAML 1.2 + // --- + // - abc + // - def + // - key: value + // key2: [ value2a, value2b ] + // - "2" # !!str + // - 2 # !!int + // ... + + + Value for the scalar node. + Created scalar node. + + + + Create a scalar node. + + Tag for the scalar node. + Value for the scalar node. + Created scalar node. + + + + Create a sequence node. Tag is set to be "!!seq". + + Child nodes. + Created sequence node. + + + + Create a sequence node. + + Child nodes. + Tag for the seuqnce. + Created sequence node. + + + + Create a mapping node. Tag is set to be "!!map". + + Sequential list of key/value pairs. + Created mapping node. + + + + Create a mapping node. + + Sequential list of key/value pairs. + Tag for the mapping. + Created mapping node. + + + + + object に代入されたクラスや構造体のメンバーに、リフレクションを + 解して簡単にアクセスできるようにしたクラス + + アクセス方法をキャッシュするので、繰り返し使用する場合に高速化が + 期待できる + + + + + Caches ObjectMemberAccessor instances for reuse. + + + + + + 指定した型へのアクセス方法を表すインスタンスを返す + キャッシュに存在すればそれを返す + キャッシュに存在しなければ新しく作って返す + 作った物はキャッシュされる + + クラスまたは構造体を表す型情報 + + + + + メンバ名と Accessor のペアを巡回する + + + + + + メンバへの読み書きを行うことができる + + オブジェクト + メンバの名前 + + + + + Validates a text as a global tag in YAML. + + RFC4151 - The 'tag' URI Scheme> + + + + + Base class to implement a parser class. + + It allows not very efficient but easy implementation of a text parser along + with a parameterized BNF productions. + + Parser specific state structure. + + + + Parse the using the + as the starting rule. + + Starting rule. + Text to be parsed. + + + + + Gets / sets source text to be parsed. + While parsing, this variable will not be changed. + The current position to be read by parser is represented by the field . + Namely, the next character to be read is text[p]. + + + + + The current reading position. + + The next character to be read by the parser is text[p]. + + Increase to reduce some part of source text . + + The current position is automatically reverted at rewinding. + + + Example to show how to reduce BNF reduction rule of ( "t" "e" "x" "t" ). + + return RewindUnless(()=> + text[p++] == 't' && + text[p++] == 'e' && + text[p++] == 'x' && + text[p++] == 't' + ); + + + + + + Use this variable to build some string data from source text. + + It will be automatically reverted at rewinding. + + + + + Individual-parser-specific state object. + + It will be automatically reverted at rewinding. + + If some action, in addition to simply restore the value of the state object, + is needed to recover the previous state, override + method. + + + + + Initialize , which represents line number to + start position of each line list. + + + + + Line number to start position list. + + + + + Reporting syntax error by throwing . + + template for the error message. + parameters if required + Because it throw exception, nothing will be returned in reality. + + + + Give warning if is true. + + By default, the warning will not be shown / stored to anywhere. + To show or log the warning, override . + + + + return + SomeObsoleteReductionRule() && + WarningIf( + context != Context.IndeedObsolete, + "Obsolete"); + + + If true, warning is given; otherwize do nothing. + template for the warning message. + parameters if required + Always true. + + + + Give warning if is false. + + By default, the warning will not be shown / stored to anywhere. + To show or log the warning, override . + + + + return + SomeObsoleteReductionRule() && + WarningUnless( + context != Context.NotObsolete, + "Obsolete"); + + + If false, warning is given; otherwize do nothing. + template for the warning message. + parameters if required + Always true. + + + + Give warning. + + By default, the warning will not be shown / stored to anywhere. + To show or log the warning, override . + + + + return + SomeObsoleteReductionRule() && + Warning("Obsolete"); + + + template for the warning message. + parameters if required + Always true. + + + + Invoked when warning was given while parsing. + + Override this method to display / store the warning. + + Warning message. + + + + Represents EBNF operator of "join", i.e. serial appearence of several rules. + + + This recoveres , , + when does not return true. + + If any specific operation is needed for rewinding, in addition to simply + recover the value of , override . + + If false is returned, the parser status is rewound. + true if returned true; otherwise false. + + name ::= first-name middle-name? last-name + + bool Name() + { + return RewindUnless(()=> + FirstName() && + Optional(MiddleName) && + LastName() + ); + } + + + + + + This method is called just after recovers . + Override it to do any additional operation for rewinding. + + + + + Represents EBNF operator of "*". + + Reduction rule to be repeated. + Always true. + + lines-or-empty ::= line* + + bool LinesOrEmpty() + { + return + Repeat(Line); + } + + + lines-or-empty ::= (text line-break)* + Note: Do not forget if several + rules are sequentially appears in operator. + + bool LinesOrEmpty() + { + return + Repeat(()=> + RewindUnless(()=> + Text() && + LineBreak() + ) + ); + } + + + + + + Represents EBNF operator of "+". + + Reduction rule to be repeated. + true if the rule matches; otherwise false. + + lines ::= line+ + + bool Lines() + { + return + Repeat(Line); + } + + + + lines ::= (text line-break)+ + + Note: Do not forget RewindUnless in Repeat operator. + + bool Lines() + { + return + Repeat(()=> + RewindUnless(()=> + Text() && + LineBreak() + ) + ); + } + + + + + + Represents n times repeatition. + + + four-lines ::= (text line-break){4} + + Note: Do not forget if several + rules are sequentially appears in operator. + + bool FourLines() + { + return + Repeat(4, ()=> + RewindUnless(()=> + Text() && + LineBreak() + ) + ); + } + + + Repetition count. + Reduction rule to be repeated. + true if the rule matches; otherwise false. + + + + Represents at least , at most times repeatition. + + + google ::= "g" "o"{2,100} "g" "l" "e" + Note: Do not forget if several + rules are sequentially appears in operator. + + bool Google() + { + return + RewindUnless(()=> + text[p++] == 'g' && + Repeat(2, 100, + RewindUnless(()=> + text[p++] == 'o' + ) + ) + text[p++] == 'g' && + text[p++] == 'l' && + text[p++] == 'e' + ); + } + + + Minimum repetition count. Negative value is treated as 0. + Maximum repetition count. Negative value is treated as positive infinity. + Reduction rule to be repeated. + true if the rule matches; otherwise false. + + + + Represents BNF operator "?". + + + file ::= header? body footer? + + Note: Do not forget if several + rules are sequentially appears in operator. + + bool File() + { + return + Optional(Header()) && + Body() && + Optional(Footer()); + } + + + Reduction rule that is optional. + Always true. + + + + Represents BNF operator "?" (WITH rewinding wrap). + + + file = header? body footer? + + Note: Do not forget if several + rules are sequentially appears in operator. + + bool File() + { + return + Optional(Header) && + Body() && + Optional(Footer); + } + + + Reduction rule that is optional. + Always true. + + + + Reduce one character if it is a member of the specified character set. + + Acceptable character set. + true if the rule matches; otherwise false. + + alpha ::= [A-Z][a-z]
+ num ::= [0-9]
+ alpha-num :: alpha | num
+ word ::= alpha ( alpha-num )*
+ + Func<char,bool> Alpha = Charset( c => + ( 'A' <= c && c <= 'Z' ) || + ( 'a' <= c && c <= 'z' ) + ); + Func<char,bool> Num = Charset( c => + '0' <= c && c <= '9' + ); + Func<char,bool> AlphaNum = Charset( c => + Alpha(c) || Num(c) + ); + bool Word() + { + return + Accept(Alpha) && + Repeat(AlphaNum); + // No need for RewindUnless + } + +
+
+ + + Accepts a character 'c'. + + It can be also represented by text[p++] == c wrapped by . + + The character to be accepted. + true if the rule matches; otherwise false. + + YMCA ::= "Y" "M" "C" "A" + + bool YMCA() + { + return + RewindUnless(()=> + Accept('Y') && + Accept('M') && + Accept('C') && + Accept('A') + ); + } + + -or- + + bool YMCA() + { + return + RewindUnless(()=> + text[p++] == 'Y' && + text[p++] == 'M' && + text[p++] == 'C' && + text[p++] == 'A' + ); + } + + + + + + Accepts a sequence of characters. + + Sequence of characters to be accepted. + true if the rule matches; otherwise false. + + YMCA ::= "Y" "M" "C" "A" + + bool YMCA() + { + return + Accept("YMCA"); + } + + + + + + Represents sequence of characters. + + Sequence of characters to be accepted. + true if the rule matches; otherwise false. + + + + Represents BNF operator of "*". + + Character set to be accepted. + Always true. + + + + Represents BNF operator of "+". + + Character set to be accepted. + true if the rule matches; otherwise false. + + + + Represents n times repetition of characters. + + Character set to be accepted. + Repetition count. + true if the rule matches; otherwise false. + + + + Represents at least min times, at most max times + repetition of characters. + + Character set to be accepted. + Minimum repetition count. Negative value is treated as 0. + Maximum repetition count. Negative value is treated as positive infinity. + true if the rule matches; otherwise false. + + + + Represents BNF operator "?". + + Character set to be accepted. + Always true. + + + + Builds a performance-optimized table-based character set definition from a simple + but slow comparison-based definition. + + By default, the character table size is 0x100, namely only the characters of [\0-\xff] are + judged by using a character table and others are by the as-given slow comparisn-based definitions. + + To have maximized performance, locate the comparison for non-table based judgement first + in the definition as the example below. + + Use form to explicitly + specify the table size. + + This sample shows how to build a character set delegate. + + static class YamlCharsets: Charsets + { + Func<char, bool> cPrintable; + Func<char, bool> sWhite; + + static YamlCharsets() + { + cPrintable = CacheResult(c => + /* ( 0x10000 < c && c < 0x110000 ) || */ + ( 0xe000 <= c && c <= 0xfffd ) || + ( 0xa0 <= c && c <= 0xd7ff ) || + ( c < 0x100 && ( // to improve performance + c == 0x85 || + ( 0x20 <= c && c <= 0x7e ) || + c == 0x0d || + c == 0x0a || + c == 0x09 + ) ) + ); + sWhite = CacheResult(c => + c < 0x100 && ( // to improve performance + c == '\t' || + c == ' ' + ) + ); + } + } + + A simple but slow comparison-based definition of the charsert. + A performance-optimized table-based delegate built from the given . + + + + Builds a performance-optimized table-based character set definition from a simple + but slow comparison-based definition. + + Characters out of the table are judged by the as-given slow comparisn-based + definitions. + + So, to have maximized performance, locate the comparison for non-table based + judgement first in the definition as the example below. + + This sample shows how to build a character set delegate. + + static class YamlCharsets: Charsets + { + Func<char, bool> cPrintable; + Func<char, bool> sWhite; + + static YamlCharsets() + { + cPrintable = CacheResult(c => + /* ( 0x10000 < c && c < 0x110000 ) || */ + ( 0xe000 <= c && c <= 0xfffd ) || + ( 0xa0 <= c && c <= 0xd7ff ) || + ( c < 0x100 && ( // to improve performance + c == 0x85 || + ( 0x20 <= c && c <= 0x7e ) || + c == 0x0d || + c == 0x0a || + c == 0x09 + ) ) + ); + sWhite = CacheResult(c => + c < 0x100 && ( // to improve performance + c == '\t' || + c == ' ' + ) + ); + } + } + + Character table size. + A simple but slow comparison-based definition of the charsert. + A performance-optimized table-based delegate built from the given . + + + + Saves a part of the source text that is reduced in the . + If the rule does not match, nothing happends. + + Reduction rule to match. + If the matches, + the part of the source text reduced in the is set; + otherwise String.Empty is set. + true if matches; otherwise false. + + + + Saves a part of the source text that is reduced in the + and append it to . + If the rule does not match, nothing happends. + + Reduction rule to match. + true if matches; otherwise false. + + + + Saves a part of the source text that is reduced in the . + If the rule does not match, nothing happends. + + Reduction rule to match. + If matches, this delegate is invoked + with the part of the source text that is reduced in the + as the parameter. Do any action in the delegate. + true if matches; otherwise false. + + + bool SomeRule() + { + return + Save(()=> SubRule(), s => MessageBox.Show(s)); + } + + + + + Execute some action. + + Action to be done. + Always true. + + + bool SomeRule() + { + return + SubRule() && + Action(()=> do_some_action()); + } + + + + + Report error by throwing when the does not match. + + Some reduction rule that must match. + Error message as template + Parameters for template + Always true; otherwise an exception thrown. + + + + Report error by throwing when the does not match. + + Some reduction rule that must match. + Error message as template + Parameters for template + Always true; otherwise an exception is thrown. + + + + Report error by throwing when the does not match + and an additional condition is true. + + Some reduction rule that must match. + Additional condition: if this parameter is false, + rewinding occurs, instead of throwing exception. + Error message as template + Parameters for template + true if the reduction rule matches; otherwise false. + + + + Report error by throwing when is true. + + True to throw exception. + Error message as template + Parameters for template + Always true. + + + + Assign var = value and return true; + + Type of the variable and value. + Variable to be assigned. + Value to be assigned. + Always true. + + + + Get current position represented by raw and column. + + + + + Represents a position in a multiline text. + + + + + Raw in a text. + + + + + Column in a text. + + + + + Validates a text as a global tag in YAML. + + A candidate for a global tag in YAML. + True if is a valid global tag. + + + + Not used in this parser + + + + + Reset(); + SetupDefaultTagPrefixes(); + Add(tag_handle, tag_prefix); + verbatim_tag = Resolve(tag_handle, tag_name); + + class has instance methods and , @@ -3518,6 +3172,121 @@ + + + Represents the way to automatically resolve Tag from the Value of a YamlScalar. + + + + + Create TagResolver with default resolution rules. + + + + + Add default tag resolution rules to the rule list. + + + + + List of tag resolution rules. + + + + + Add a tag resolution rule that is invoked when matches + the Value of a node. + + The tag is resolved to and is + invoked when actual value of type is extracted from + the node text. + + + Surround sequential calls of this function by / + pair to avoid invoking slow internal calculation method many times. + + + + BeginUpdate(); // to avoid invoking slow internal calculation method many times. + Add( ... ); + Add( ... ); + Add( ... ); + Add( ... ); + EndUpdate(); // automaticall invoke internal calculation method + + + + + + + + + Supress invoking slow internal calculation method when + called. + + BeginUpdate / can be called nestedly. + + + + + Quit to supress invoking slow internal calculation method when + called. + + + + + Execute tag resolution and returns automatically determined tag value from . + + Node text with which automatic tag resolution is done. + Automatically determined tag value . + + + + Decode and returns actual value in C# object. + + Node to be decoded. + Decoded value. + True if decoded successfully. + + + + Extend string object to have .DoubleQuoteEscape() / .DoubleQuoteUnescape(). + + + + + Escape control codes with YAML double quoted string format. + + + + + + + Unescape control codes escaped with YAML double quoted string format. + + + + + + + YAML style double quoted string escape / unescape. + + + + + Initialize tables + + + + + Escape control codes, double quotations, backslashes in the YAML double quoted string format + + + + + Unescape control codes, double quotations, backslashes escape in the YAML double quoted string format + + Type 関連のユーティリティメソッド @@ -3651,120 +3420,351 @@ Calculate hash code by reference. - + - Represents the way to automatically resolve Tag from the Value of a YamlScalar. - - - - - Create TagResolver with default resolution rules. - - - - - Add default tag resolution rules to the rule list. - - - - - List of tag resolution rules. - - - - - Add a tag resolution rule that is invoked when matches - the Value of a node. + A text parser for
+ YAML Ain’t Markup Language (YAML™) Version 1.2
+ 3rd Edition (2009-07-21)
+ http://yaml.org/spec/1.2/spec.html
- The tag is resolved to and is - invoked when actual value of type is extracted from - the node text. + This class parse a YAML document and compose representing graph.
- - Surround sequential calls of this function by / - pair to avoid invoking slow internal calculation method many times. - - BeginUpdate(); // to avoid invoking slow internal calculation method many times. - Add( ... ); - Add( ... ); - Add( ... ); - Add( ... ); - EndUpdate(); // automaticall invoke internal calculation method - - - - - -
- - - Supress invoking slow internal calculation method when - called. + string yaml = LoadYamlSource(); + YamlParser parser = new YamlParser(); + Node[] result = null; + try { + result = parser.Parse(yaml); + ... + // you can reuse parser as many times you want + ... + + } catch( ParseErrorException e ) { + MessageBox.Show(e.Message); + } + if(result != null) { + ... - BeginUpdate / can be called nestedly. + } + + + + Currently, this parser violates the YAML 1.2 specification in the following points. + - line breaks are not normalized. + - omission of the final line break is allowed in plain / literal / folded text. + - ':' followed by ns-indicator is excluded from ns-plain-char. + + + + + Initialize a YAML parser. - + - Quit to supress invoking slow internal calculation method when - called. + Parse YAML text and returns a list of . + + YAML text to be parsed. + A list of parsed from the given text + + + + Parse YAML text and returns a list of . + + YAML text to be parsed. + YAML Configuration to be used in parsing. + A list of parsed from the given text + + + + Add message in property. + + + + + + Invoked when unknown directive is found in YAML document. + + Name of the directive + Parameters for the directive + + + + Invoked when YAML directive is found in YAML document. + + Given version + + + + rewinding action - + - Execute tag resolution and returns automatically determined tag value from . + set status.tag with tag resolution - Node text with which automatic tag resolution is done. - Automatically determined tag value . - - - - Decode and returns actual value in C# object. - - Node to be decoded. - Decoded value. - True if decoded successfully. - - - - Extend string object to have .DoubleQuoteEscape() / .DoubleQuoteUnescape(). - - - - - Escape control codes with YAML double quoted string format. - - + + - + - Unescape control codes escaped with YAML double quoted string format. + set status.tag with verbatim tag value - + verbatim tag - + - YAML style double quoted string escape / unescape. + Used when the parser resolves a tag for a scalar node from its value. + + New resolution rules can be add before calling method. - + - Initialize tables + [105] - + - Escape control codes, double quotations, backslashes in the YAML double quoted string format + [106] - + - Unescape control codes, double quotations, backslashes escape in the YAML double quoted string format + Warnings that are made while parsing a YAML text. + This property is cleared by new call for method. + + + additional fields to be rewound + + + + + tag for the next value (will be cleared when the next value is created) + + + + + anchor for the next value (will be cleared when the next value is created) + + + + + current value + + + + + anchor rewinding position + + + + + [22] + + + + + [23] + + + + + Add string class two methods: .UriEscape(), .UriUnescape() + + Charset that is not escaped is represented NonUriChar member. + + NonUriChar = new Regex(@"[^0-9A-Za-z\-_.!~*'()\\;/?:@&=$,\[\]]"); + + + + + Escape the string in URI encoding format. + + String to be escaped. + Escaped string. + + + + Escape the string in URI encoding format. + + String to be escaped. + Escaped string. + + + + Unescape the string escaped in URI encoding format. + + String to be unescape. + Unescaped string. + + + + Escape / Unescape string in URI encoding format + + Charset that is not escaped is represented NonUriChar member. + + NonUriChar = new Regex(@"[^0-9A-Za-z\-_.!~*'()\\;/?:@&=$,\[\]]"); + + + + + When reports syntax error by exception, this class is thrown. + + Sytax errors can also be reported by simply returing false with giving some warnings. + + + + + Initialize an instance of + + Error message. + + + + Converts C# object to YamlNode + + + + object obj; + YamlNode node = YamlRepresenter.ObjectToNode(obj); + + + + + + Dictionary that automatically rehash when the content of a key is changed. + Keys of this dictionary must implement . + It also call back item addition and removal by and + events. + + Type of key. Must implements . + Type of value. + + + + A dictionary that returns or + from hash code. This is the main repository that stores the pairs. + If there are several entries that have same hash code for thir keys, + a is stored to hold all those entries. + Otherwise, a is stored. + + + + + A dictionary that returns hash code from the key reference. + The key must be the instance that + to one exsisting in the dictionary. + + + We store the hashes correspoinding to each key. So that when rehash, + we can find old hash code to quickly find the entry for the key. + It is also used to remember the number of keys exists in the dictionary. + + + + + Recalc hash key of the . + + The key to be rehash. The key must be the instance that + to one exsisting in the dictionary. + + + + Try to find entry for key (and value). + + key to find + if true, value matters + value to find + key not found + hash hit one entry and key found + hash hit several entries and key found + + + + Try to find entry for key (and value). + + key to find + if true, value matters + value to find + hash not found + hash hit one entry but key not found + hash hit one entry and key found + hash hit several entries but key not found + hash hit several entries and key found + + + + Collection that is readonly and invalidated when an item is + added to or removed from the dictionary. + + + + + Converts YamlNode tree into yaml text. + + + + YamlNode node; + YamlPresenter.ToYaml(node); + + YamlNode node1; + YamlNode node2; + YamlNode node3; + YamlPresenter.ToYaml(node1, node2, node3); + + + + + + Converts various types to / from string.
+ I don't remember why this class was needed.... +
+ + + object obj = GetObjectToConvert(); + + // Check if the type has [TypeConverter] attribute. + if( EasyTypeConverter.IsTypeConverterSpecified(type) ) { + + // Convert the object to string. + string s = EasyTypeConverter.ConvertToString(obj); + + // Convert the string to an object of the spific type. + object restored = EasyTypeConverter.ConvertFromString(s, type); + + Assert.AreEqual(obj, restored); + + } + + +
+ + + Construct YAML node tree that represents a given C# object. + + + + + Construct YAML node tree that represents a given C# object. + + to be converted to C# object. + to customize serialization. + + + + + Construct YAML node tree that represents a given C# object. + + to be converted to C# object. + Expected type for the root object. + to customize serialization. + + diff --git a/lib/yaml/YamlSerializer.dll b/lib/yaml/YamlSerializer.dll index 057f2c4e6be2c097ad87826bd8aede1e73cf9630..f4c31e134fe6f2787b724f5574f9a94bc912bc9e 100644 GIT binary patch literal 139776 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Ń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

Ib9ty)Y1J7=$xURs9}cs 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 G;Qs}$e&JXE From 006567786bc935e10409e2267bb88b3c84a0b742 Mon Sep 17 00:00:00 2001 From: Andre Rodrigues Date: Wed, 3 Nov 2010 14:29:50 -0700 Subject: [PATCH 3/4] Updating proj files. --HG-- branch : dev --- src/Orchard.Web/Modules/Lucene/Lucene.csproj | 3 --- src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj | 1 - .../Orchard.CodeGeneration/Orchard.CodeGeneration.csproj | 1 - .../Modules/Orchard.Comments/Orchard.Comments.csproj | 1 - .../Orchard.ContentQueries/Orchard.ContentQueries.csproj | 1 - .../Orchard.ContentTypes/Orchard.ContentTypes.csproj | 7 ------- src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj | 3 +-- .../Orchard.Experimental/Orchard.Experimental.csproj | 1 - .../Modules/Orchard.Indexing/Orchard.Indexing.csproj | 1 - src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj | 1 - .../Modules/Orchard.Migrations/Orchard.Migrations.csproj | 1 - .../Modules/Orchard.Modules/Orchard.Modules.csproj | 1 - .../Orchard.MultiTenancy/Orchard.MultiTenancy.csproj | 1 - .../Modules/Orchard.Packaging/Orchard.Packaging.csproj | 3 --- src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj | 1 - .../Modules/Orchard.Search/Orchard.Search.csproj | 3 --- src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj | 1 - src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj | 1 - .../Modules/Orchard.Themes/Orchard.Themes.csproj | 1 - src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj | 1 - .../Modules/Orchard.Widgets/Orchard.Widgets.csproj | 1 - .../Modules/Orchard.jQuery/Orchard.jQuery.csproj | 1 - src/Orchard.Web/Modules/TinyMce/TinyMce.csproj | 1 - 23 files changed, 1 insertion(+), 36 deletions(-) diff --git a/src/Orchard.Web/Modules/Lucene/Lucene.csproj b/src/Orchard.Web/Modules/Lucene/Lucene.csproj index 51d46bd9f..df287dfec 100644 --- a/src/Orchard.Web/Modules/Lucene/Lucene.csproj +++ b/src/Orchard.Web/Modules/Lucene/Lucene.csproj @@ -80,9 +80,6 @@ - - - {2D1D92BB-4555-4CBE-8D0E-63563D6CE4C6} diff --git a/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj b/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj index 1b1b04662..1bad3749b 100644 --- a/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj +++ b/src/Orchard.Web/Modules/Orchard.Blogs/Orchard.Blogs.csproj @@ -135,7 +135,6 @@ Code - diff --git a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj index c1705330a..c7d6fcf48 100644 --- a/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj +++ b/src/Orchard.Web/Modules/Orchard.CodeGeneration/Orchard.CodeGeneration.csproj @@ -85,7 +85,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj b/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj index 161d2c21c..1657e3f2e 100644 --- a/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj +++ b/src/Orchard.Web/Modules/Orchard.Comments/Orchard.Comments.csproj @@ -112,7 +112,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.ContentQueries/Orchard.ContentQueries.csproj b/src/Orchard.Web/Modules/Orchard.ContentQueries/Orchard.ContentQueries.csproj index a0eb16848..390a4a00f 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentQueries/Orchard.ContentQueries.csproj +++ b/src/Orchard.Web/Modules/Orchard.ContentQueries/Orchard.ContentQueries.csproj @@ -54,7 +54,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj b/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj index 0dfae91f7..9586788e5 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Orchard.ContentTypes.csproj @@ -117,13 +117,6 @@ - - - Web.config - - - Web.config - diff --git a/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj b/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj index fc2743ca7..4573ff0b0 100644 --- a/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj +++ b/src/Orchard.Web/Modules/Orchard.Email/Orchard.Email.csproj @@ -78,7 +78,6 @@ - @@ -99,7 +98,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Experimental/Orchard.Experimental.csproj b/src/Orchard.Web/Modules/Orchard.Experimental/Orchard.Experimental.csproj index eb428165e..0183bfa16 100644 --- a/src/Orchard.Web/Modules/Orchard.Experimental/Orchard.Experimental.csproj +++ b/src/Orchard.Web/Modules/Orchard.Experimental/Orchard.Experimental.csproj @@ -102,7 +102,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.Indexing/Orchard.Indexing.csproj b/src/Orchard.Web/Modules/Orchard.Indexing/Orchard.Indexing.csproj index 4a1b81845..13e4797a9 100644 --- a/src/Orchard.Web/Modules/Orchard.Indexing/Orchard.Indexing.csproj +++ b/src/Orchard.Web/Modules/Orchard.Indexing/Orchard.Indexing.csproj @@ -55,7 +55,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj b/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj index 510d90e22..3bebf0e29 100644 --- a/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj +++ b/src/Orchard.Web/Modules/Orchard.Media/Orchard.Media.csproj @@ -92,7 +92,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.Migrations/Orchard.Migrations.csproj b/src/Orchard.Web/Modules/Orchard.Migrations/Orchard.Migrations.csproj index b97d423b3..934e423c1 100644 --- a/src/Orchard.Web/Modules/Orchard.Migrations/Orchard.Migrations.csproj +++ b/src/Orchard.Web/Modules/Orchard.Migrations/Orchard.Migrations.csproj @@ -77,7 +77,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.Modules/Orchard.Modules.csproj b/src/Orchard.Web/Modules/Orchard.Modules/Orchard.Modules.csproj index e256af8af..ff839c0d7 100644 --- a/src/Orchard.Web/Modules/Orchard.Modules/Orchard.Modules.csproj +++ b/src/Orchard.Web/Modules/Orchard.Modules/Orchard.Modules.csproj @@ -88,7 +88,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Orchard.MultiTenancy.csproj b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Orchard.MultiTenancy.csproj index 016579f15..e6dfd3eba 100644 --- a/src/Orchard.Web/Modules/Orchard.MultiTenancy/Orchard.MultiTenancy.csproj +++ b/src/Orchard.Web/Modules/Orchard.MultiTenancy/Orchard.MultiTenancy.csproj @@ -91,7 +91,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.Packaging/Orchard.Packaging.csproj b/src/Orchard.Web/Modules/Orchard.Packaging/Orchard.Packaging.csproj index ef1c9d653..2d26b8dec 100644 --- a/src/Orchard.Web/Modules/Orchard.Packaging/Orchard.Packaging.csproj +++ b/src/Orchard.Web/Modules/Orchard.Packaging/Orchard.Packaging.csproj @@ -118,9 +118,6 @@ Orchard.Framework - - - diff --git a/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj b/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj index 2391a5824..3da13ed25 100644 --- a/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj +++ b/src/Orchard.Web/Modules/Orchard.Roles/Orchard.Roles.csproj @@ -95,7 +95,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj b/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj index 4fe19f383..c8387cc74 100644 --- a/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj +++ b/src/Orchard.Web/Modules/Orchard.Search/Orchard.Search.csproj @@ -96,9 +96,6 @@ - - - diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj b/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj index 3b4a2a1ad..f089a81d0 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj +++ b/src/Orchard.Web/Modules/Orchard.Setup/Orchard.Setup.csproj @@ -87,7 +87,6 @@ Designer - diff --git a/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj b/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj index 859b22f4c..c25bb40d0 100644 --- a/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj +++ b/src/Orchard.Web/Modules/Orchard.Tags/Orchard.Tags.csproj @@ -92,7 +92,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj b/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj index 676a70308..655a14554 100644 --- a/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj +++ b/src/Orchard.Web/Modules/Orchard.Themes/Orchard.Themes.csproj @@ -95,7 +95,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj b/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj index e78ca1397..83673764a 100644 --- a/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj +++ b/src/Orchard.Web/Modules/Orchard.Users/Orchard.Users.csproj @@ -109,7 +109,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj b/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj index ea6196de0..d599039a4 100644 --- a/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj +++ b/src/Orchard.Web/Modules/Orchard.Widgets/Orchard.Widgets.csproj @@ -94,7 +94,6 @@ - diff --git a/src/Orchard.Web/Modules/Orchard.jQuery/Orchard.jQuery.csproj b/src/Orchard.Web/Modules/Orchard.jQuery/Orchard.jQuery.csproj index 92c94d542..4ec031205 100644 --- a/src/Orchard.Web/Modules/Orchard.jQuery/Orchard.jQuery.csproj +++ b/src/Orchard.Web/Modules/Orchard.jQuery/Orchard.jQuery.csproj @@ -93,7 +93,6 @@ - diff --git a/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj b/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj index 9e5c17b6d..2d87f211c 100644 --- a/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj +++ b/src/Orchard.Web/Modules/TinyMce/TinyMce.csproj @@ -157,7 +157,6 @@ - From 8f3816048a2f604bb0066120d2891e0e29ac72b4 Mon Sep 17 00:00:00 2001 From: Andre Rodrigues Date: Wed, 3 Nov 2010 14:32:05 -0700 Subject: [PATCH 4/4] Medium Trust: Avoiding getName() FileIOPermission issue in isAssemblyLoaded method by checking against the fullname. --HG-- branch : dev --- src/Orchard/Environment/IHostEnvironment.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Orchard/Environment/IHostEnvironment.cs b/src/Orchard/Environment/IHostEnvironment.cs index 772ef04fa..1678ae0cd 100644 --- a/src/Orchard/Environment/IHostEnvironment.cs +++ b/src/Orchard/Environment/IHostEnvironment.cs @@ -36,7 +36,7 @@ namespace Orchard.Environment { } public bool IsAssemblyLoaded(string name) { - return AppDomain.CurrentDomain.GetAssemblies().Any(a => a.GetName().Name == name); + return AppDomain.CurrentDomain.GetAssemblies().Any(a => a.FullName.Contains(name)); } public void RestartAppDomain() {