Datei: NDODLL/NDOql/Expressions/StringLiteralExpression.cs

Last Commit (f96ae8c)
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 namespace NDOql.Expressions
6 {
7 ····/// <summary>
8 ····/// Represents a string literal
9 ····/// </summary>
10 ····public class StringLiteralExpression : ConstantExpression
11 ····{
12 ········/// <summary>
13 ········/// Constructor
14 ········/// </summary>
15 ········/// <param name="value"></param>
16 ········/// <param name="line"></param>
17 ········/// <param name="col"></param>
18 ········public StringLiteralExpression(string value, int line, int col) : base(line, col)
19 ········{
 
20 ············base.Value = value;
21 ············base.ExpressionType = ExpressionType.String;
22 ········}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
24 ········///<inheritdoc/>
25 ········public override string ToString()
26 ········{
27 ············return Value.ToString();
28 ············// return "'" + Value + '\'';
29 ········}
30
31 ········/// <summary>
32 ········/// Constructs a clone of the object
33 ········/// </summary>
34 ········public override OqlExpression DeepClone
35 ········{
36 ············get
37 ············{
38 ················return new StringLiteralExpression( (string)Value, Line, Column );
39 ············}
40 ········}
41 ····}
42 }
43
New Commit (fe801ed)
1 using System;
2 using System.Collections.Generic;
3 using System.Text;
4
5 namespace NDOql.Expressions
6 {
7 ····/// <summary>
8 ····/// Represents a string literal
9 ····/// </summary>
10 ····public class StringLiteralExpression : ConstantExpression
11 ····{
12 ········/// <summary>
13 ········/// Constructor
14 ········/// </summary>
15 ········/// <param name="value"></param>
16 ········/// <param name="line"></param>
17 ········/// <param name="col"></param>
18 ········public StringLiteralExpression(string value, int line, int col) : base(line, col)
19 ········{
20 ············//CheckForSingleQuotes( value );
21 ············base.Value = value;
22 ············base.ExpressionType = ExpressionType.String;
23 ········}
24
25 ········///// <summary>
26 ········///// Converts a string literal, so that it can't contain a single quote.
27 ········///// </summary>
28 ········///// <param name="value"></param>
29 ········///// <returns></returns>
30 ········//static void CheckForSingleQuotes( string value )
31 ········//{
32 ········//····var temp = value.Substring( 1, value.Length - 2 );
33 ········//····var sb = new StringBuilder( "'" );
34 ········//····var last = temp.Length - 1;
35 ········//····for (int i = 0; i <= last; i++)
36 ········//····{
37 ········//········var c = temp[i];
38 ········//········if (c == '\'')
39 ········//········{
40 ········//············if (i < last && temp[i + 1] == '\'')
41 ········//············{
42 ········//················i++; // Skip second '
43 ········//············}
44 ········//············sb.Append( "''" ); // Always append two quotes
45 ········//········}
46 ········//········else
47 ········//········{
48 ········//············sb.Append( c );
49 ········//········}
50 ········//····}
51 ········//····sb.Append( '\'' );
52 ········//····return sb.ToString();
53 ········//}
54
55 ········///<inheritdoc/>
56 ········public override string ToString()
57 ········{
58 ············return Value.ToString();
59 ············// return "'" + Value + '\'';
60 ········}
61
62 ········/// <summary>
63 ········/// Constructs a clone of the object
64 ········/// </summary>
65 ········public override OqlExpression DeepClone
66 ········{
67 ············get
68 ············{
69 ················return new StringLiteralExpression( (string)Value, Line, Column );
70 ············}
71 ········}
72 ····}
73 }
74