本文整理汇总了C#中StreamWriterLevel.P方法的典型用法代码示例。如果您正苦于以下问题:C# StreamWriterLevel.P方法的具体用法?C# StreamWriterLevel.P怎么用?C# StreamWriterLevel.P使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类StreamWriterLevel
的用法示例。
在下文中一共展示了StreamWriterLevel.P方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: PrintC
public static void PrintC(ArrayValue pThis, StreamWriterLevel c, int lev)
{
c.WriteLine("{");
lev++;
int cnt = pThis.m_children.Count;
c.P(lev); c.WriteLine("{0},", cnt);
c.P(lev); c.WriteLine("{");
for (int i = 0; i < cnt; i++)
{
c.P(lev + 1);
((ISCCVariable)pThis.m_children[i]).PrintC(c, lev + 1);
if (i != cnt - 1)
c.WriteLine(",");
else
c.WriteLine();
}
c.P(lev); c.WriteLine("}");
lev--;
c.P(lev);
c.Write("}");
}
示例2: PrintCIsConstraintValid
public static void PrintCIsConstraintValid(Asn1Type pThis, PEREffectiveConstraint cns, StreamWriterLevel c, string errorCode, string typeName, string varName, int lev, int arrayDepth)
{
string varName2 = varName;
if (!varName.Contains("->"))
varName2 = "*" + varName;
if (pThis.m_constraints.Count > 0)
{
c.P(lev); c.Write("if ( !(");
for (int i = 0; i < pThis.m_constraints.Count; i++)
{
string ret = ((ISCConstraint)pThis.m_constraints[i]).PrintCIsConstraintValid(varName2, lev);
c.Write(ret);
if (i != pThis.m_constraints.Count - 1)
c.Write(" && ");
}
c.WriteLine(") ) {");
c.P(lev + 1);
c.WriteLine("*pErrCode = ERR_{0};", C.ID(errorCode));
c.P(lev + 1);
c.WriteLine("return FALSE;");
c.P(lev);
c.WriteLine("}");
}
}
示例3: PrintCDecode
public void PrintCDecode(PEREffectiveConstraint cns, StreamWriterLevel c, string varName, int lev)
{
long min = minItems(cns);
long max = maxItems(cns);
string i = "i" + (CLocalVariable.GetArrayIndex(varName) + 1);
string length = "length" + (CLocalVariable.GetArrayIndex(varName) + 1);
string curBlockSize = "curBlockSize" + (CLocalVariable.GetArrayIndex(varName) + 1);
string nCount = "nCount" + (CLocalVariable.GetArrayIndex(varName) + 1);
string prefix = "";
bool topLevel = !varName.Contains("->");
if (topLevel)
prefix = varName + "->";
else
prefix = varName + ".";
if (max < 0x10000)
{
if (min != max)
{
c.P(lev);
c.WriteLine("if (!BitStream_DecodeConstraintWholeNumber(pBitStrm, &nCount, {0}, {1})) {{", min, max);
c.P(lev + 1);
c.WriteLine("*pErrCode = ERR_INSUFFICIENT_DATA;");
c.P(lev + 1);
c.WriteLine("return FALSE;");
c.P(lev);
c.WriteLine("}");
c.P(lev);
c.WriteLine("{0}nCount = (long)nCount;", prefix);
}
else
{
c.P(lev);
c.WriteLine("{0}nCount = {1};", prefix, max);
}
c.P(lev);
c.WriteLine("if (!BitStream_ReadBits(pBitStrm, {0}arr, {0}nCount)) {{", prefix);
c.P(lev + 1);
c.WriteLine("*pErrCode = ERR_INSUFFICIENT_DATA;");
c.P(lev + 1);
c.WriteLine("return FALSE;");
c.P(lev);
c.WriteLine("}");
}
else
{
PrintCDecodeFragmentation(cns, c, varName, lev,
"arr", max, prefix, length, curBlockSize, nCount);
}
}
示例4: Print
public static void Print(StreamWriterLevel c, OrderedDictionary<string, CLocalVariable> vars)
{
foreach (CLocalVariable v in vars.Values)
{
c.P(1);
if (v.staticDeclaration)
c.Write("static ");
c.Write("{0} {1}", v.type, v.varName);
if (v.arrayLen > 0)
c.Write("[{0}]",v.arrayLen);
if (v.initVal != "")
c.Write(" = {0}", v.initVal);
c.WriteLine(";");
//if (v.arrayLen == 0)
//{
// c.WriteLine("{0} {1} = {2};", v.type, v.varName, v.initVal);
//}
//else
//{
// c.WriteLine("{0} {1}[{2}];", v.type, v.varName, v.arrayLen);
//}
}
if (vars.Count > 0)
c.WriteLine();
}
示例5: PrintCDecode
public void PrintCDecode(PEREffectiveConstraint cns, StreamWriterLevel c, string varName, int lev)
{
string varName2 = varName;
if (!varName.Contains("->"))
varName2 += "->";
else
varName2 += ".";
int largestIndex = -1;
foreach (string v in m_children.Keys)
{
if (m_children[v].m_extended)
continue;
largestIndex++;
}
c.P(lev);
c.WriteLine("if (!BitStream_DecodeConstraintWholeNumber(pBitStrm, &nChoiceIndex, {0}, {1})) {{", 0, largestIndex);
c.P(lev + 1);
c.WriteLine("*pErrCode = ERR_INSUFFICIENT_DATA;");
c.P(lev + 1);
c.WriteLine("return FALSE;");
c.P(lev);
c.WriteLine("}");
c.P(lev);
c.WriteLine("switch(nChoiceIndex)");
c.P(lev); c.WriteLine("{");
int choiceIndex = 0;
foreach (ChoiceChild ch in m_children.Values)
{
c.P(lev); c.WriteLine("case {0}:", choiceIndex);
((ISCCType)ch.m_type).PrintCDecode(ch.m_type.PEREffectiveConstraint, c,
varName2 + "u." + C.ID(ch.m_childVarName), lev + 1);
c.P(lev + 1);
c.WriteLine("{0}kind = {1};", varName2, ch.CID);
c.P(lev + 1);
c.WriteLine("break;");
choiceIndex++;
}
c.P(lev); c.WriteLine("}");
}
示例6: PrintCInitialize
public static void PrintCInitialize(ArrayType pThis, PEREffectiveConstraint cns,
Asn1Value defauleVal, StreamWriterLevel c, string typeName, string varName, int lev, int arrayDepth)
{
long min = pThis.minItems(cns);
long max = pThis.maxItems(cns);
string i = "i" + arrayDepth.ToString();
string prefix = "";
bool topLevel = !varName.Contains("->");
if (topLevel)
prefix = varName + "->";
else
{
prefix = varName + ".";
}
ArrayValue arVal = defauleVal as ArrayValue;
if (arVal == null)
{
c.P(lev);
c.WriteLine("{0}nCount = 0;", prefix);
c.P(lev); c.WriteLine("for({0}=0;{0}<{1};{0}++)", i, pThis.maxItems(cns));
c.P(lev); c.WriteLine("{");
((ISCCType)pThis.m_type).PrintCInitialize(pThis.m_type.PEREffectiveConstraint, pThis.m_type.GetOneValidValue(), c,
typeName + "_arr", prefix + "arr[" + i + "]", lev + 1, arrayDepth + 1);
c.P(lev); c.WriteLine("}");
}
else
{
c.P(lev);
c.WriteLine("{0}nCount = {1};", prefix, arVal.m_children.Count);
for (int k = 0; k < arVal.m_children.Count; k++)
{
c.P(lev); c.WriteLine("{");
((ISCCType)pThis.m_type).PrintCInitialize(pThis.m_type.PEREffectiveConstraint, arVal.m_children[k], c,
typeName + "_arr", prefix + "arr[" + k.ToString() + "]", lev + 1, arrayDepth + 1);
c.P(lev); c.WriteLine("}");
}
}
}
示例7: PrintCEncode
public void PrintCEncode(PEREffectiveConstraint cns, StreamWriterLevel c, string errorCode, string varName, int lev)
{
c.P(lev); c.WriteLine("/* NULL type */");
}
示例8: DecodeNormal
private void DecodeNormal(PERIntegerEffectiveConstraint cn, StreamWriterLevel c, string var, int lev)
{
if (!cn.m_rootRange.m_minIsInfinite && !cn.m_rootRange.m_maxIsInfinite && (cn.m_rootRange.m_max == cn.m_rootRange.m_min))
{
c.P(lev);
c.WriteLine("{0} = {1};", var.Replace("&", ""), C.L(cn.m_rootRange.m_min));
}
else
{
if (!cn.m_rootRange.m_minIsInfinite && !cn.m_rootRange.m_maxIsInfinite)
{
c.P(lev);
c.WriteLine("if (!BitStream_DecodeConstraintWholeNumber(pBitStrm, {0}, {1}, {2})) {{", var, C.L(cn.m_rootRange.m_min), C.L(cn.m_rootRange.m_max));
}
else if (!cn.m_rootRange.m_minIsInfinite && cn.m_rootRange.m_maxIsInfinite)
{
c.P(lev);
c.WriteLine("if (!BitStream_DecodeSemiConstraintWholeNumber(pBitStrm, {0}, {1})) {{", var, C.L(cn.m_rootRange.m_min));
}
else
{
c.P(lev);
c.WriteLine("if (!BitStream_DecodeUnConstraintWholeNumber(pBitStrm, {0})) {{", var);
}
c.P(lev + 1);
c.WriteLine("*pErrCode = ERR_INSUFFICIENT_DATA;");
c.P(lev + 1);
c.WriteLine("return FALSE;");
c.P(lev);
c.WriteLine("}");
}
}
示例9: PrintCInitialize
public void PrintCInitialize(PEREffectiveConstraint cns, Asn1Value defauleVal, StreamWriterLevel h, string typeName, string varName, int lev, int arrayDepth)
{
bool topLevel = !varName.Contains("->");
EnumeratedValue v = defauleVal as EnumeratedValue;
string defVal = m_enumValues.Values[0].CID;
if (v != null)
defVal = m_enumValues[v.ID].CID;
h.P(lev);
if (topLevel)
h.WriteLine("*{0} = {1};", varName, defVal);
else
h.WriteLine("{0} = {1};", varName, defVal);
}
示例10: PrintCDecodeItem
public static void PrintCDecodeItem(IA5StringType pThis, PEREffectiveConstraint cns, StreamWriterLevel c, string varName, int lev)
{
PERAlphabetAndSizeEffectiveConstraint cn = (PERAlphabetAndSizeEffectiveConstraint)cns;
CharSet perAlphaCon = cn.m_from;
int min = 0;
int max;
List<char> tmp = null;
if (perAlphaCon != null)
tmp = perAlphaCon.m_set;
else
tmp = new List<char>(pThis.AllowedCharSet);
max = tmp.Count - 1;
if (min == max)
return;
c.P(lev);
c.Write("static byte allowedCharSet[] = {");
for (int i = 0; i < tmp.Count; i++)
{
c.Write("0x{0:X2}", Convert.ToByte(tmp[i]));
if (i == tmp.Count - 1)
c.WriteLine("};");
else
c.Write(",");
if ((i + 1) % 15 == 0)
{
c.WriteLine();
c.P(lev + 7);
}
}
c.P(lev);
c.WriteLine("asn1SccSint charIndex = 0;");
c.P(lev);
c.WriteLine("if (!BitStream_DecodeConstraintWholeNumber(pBitStrm, &charIndex, {0}, {1})) {{", 0, tmp.Count - 1);
c.P(lev + 1);
c.WriteLine("*pErrCode = ERR_INSUFFICIENT_DATA;");
c.P(lev + 1);
c.WriteLine("return FALSE;");
c.P(lev);
c.WriteLine("}");
c.P(lev);
c.WriteLine("{0} = allowedCharSet[charIndex];", varName);
}
示例11: PrintCIsConstraintValid
public void PrintCIsConstraintValid(PEREffectiveConstraint cns, StreamWriterLevel c, string errorCode, string typeName, string varName, int lev, int arrayDepth)
{
c.P(lev); c.Write("if ( !");
if ((Type is IA5StringType) || !varName.Contains("->"))
c.WriteLine("{0}_IsConstraintValid({1}, pErrCode) )", DefaultBackend.Instance.TypePrefix + C.ID(m_referencedTypeName), varName);
else
c.WriteLine("{0}_IsConstraintValid(&{1}, pErrCode) )", DefaultBackend.Instance.TypePrefix + C.ID(m_referencedTypeName), varName);
c.P(lev);
c.WriteLine("{");
//c.P(lev + 1);
//c.WriteLine("*pErrCode = ERR_{0};", C.ID(errorCode));
c.P(lev + 1);
c.WriteLine("return FALSE;");
c.P(lev);
c.WriteLine("}");
CSSType.PrintCIsConstraintValid(this, cns, c, errorCode, typeName, varName, lev, arrayDepth);
}
示例12: PrintCEncodeItem
public static void PrintCEncodeItem(IA5StringType pThis, PEREffectiveConstraint cns, StreamWriterLevel c, string errorCode, string varName, int lev)
{
PERAlphabetAndSizeEffectiveConstraint cn = (PERAlphabetAndSizeEffectiveConstraint)cns;
CharSet perAlphaCon = cn.m_from;
int min = 0;
int max;
List<char> tmp = null;
if (perAlphaCon != null)
tmp = perAlphaCon.m_set;
else
tmp = new List<char>(pThis.AllowedCharSet);
max = tmp.Count - 1;
if (min == max)
return;
c.P(lev);
c.Write("static byte allowedCharSet[] = {");
for (int i = 0; i < tmp.Count; i++)
{
c.Write("0x{0:X2}", Convert.ToByte(tmp[i]));
if (i == tmp.Count - 1)
c.WriteLine("};");
else
c.Write(",");
if ((i + 1) % 15 == 0)
{
c.WriteLine();
c.P(lev + 7);
}
}
c.P(lev);
c.WriteLine("int charIndex = GetCharIndex({0}, allowedCharSet,{1});", varName, tmp.Count);
c.P(lev);
c.WriteLine("BitStream_EncodeConstraintWholeNumber(pBitStrm, charIndex, {0}, {1});", 0, tmp.Count - 1);
}
示例13: PrintHTypeDeclaration
public void PrintHTypeDeclaration(PEREffectiveConstraint cns, StreamWriterLevel h, string typeName, string varName, int lev)
{
h.WriteLine("enum {");
// h.WriteLine("enum {0} {{", typeName);
int i = 0;
foreach (Item it in m_enumValues.Values)
{
h.P(lev + 1);
h.Write("{0} = {1}", it.CID, it.m_value);
if (i < m_enumValues.Values.Count - 1)
h.WriteLine(",");
else
h.WriteLine();
i++;
}
h.P(lev);
h.Write("}");
}
示例14: PrintCEncodeFragmentation
public void PrintCEncodeFragmentation(PEREffectiveConstraint cns, StreamWriterLevel c, string errorCode, string varName, int lev,
string nCountInit, string arrName, long max, string prefix, string nCount, string curBlockSize, string curItem)
{
// c.P(lev); c.WriteLine("/* Fragmentation required since {0} is grater than 64K*/", max);
c.P(lev); c.WriteLine(nCountInit);
c.P(lev); c.WriteLine("{0} = 0;", curBlockSize);
c.P(lev); c.WriteLine("{0} = 0;", curItem);
c.P(lev); c.WriteLine("while ({0} >= 0x4000)", nCount);
c.P(lev++); c.WriteLine("{");
c.P(lev); c.WriteLine("if ({0} >= 0x10000)", nCount);
c.P(lev++); c.WriteLine("{");
c.P(lev); c.WriteLine("{0} = 0x10000;", curBlockSize);
c.P(lev); c.WriteLine("BitStream_EncodeConstraintWholeNumber(pBitStrm, 0xC4, 0, 0xFF);");
c.P(--lev); c.WriteLine("}");
c.P(lev); c.WriteLine("else if ({0} >= 0xC000)", nCount);
c.P(lev++); c.WriteLine("{");
c.P(lev); c.WriteLine("{0} = 0xC000;", curBlockSize);
c.P(lev); c.WriteLine("BitStream_EncodeConstraintWholeNumber(pBitStrm, 0xC3, 0, 0xFF);");
c.P(--lev); c.WriteLine("}");
c.P(lev); c.WriteLine("else if ({0} >= 0x8000)", nCount);
c.P(lev++); c.WriteLine("{");
c.P(lev); c.WriteLine("{0} = 0x8000;", curBlockSize);
c.P(lev); c.WriteLine("BitStream_EncodeConstraintWholeNumber(pBitStrm, 0xC2, 0, 0xFF);");
c.P(--lev); c.WriteLine("}");
c.P(lev); c.WriteLine("else");
c.P(lev++); c.WriteLine("{");
c.P(lev); c.WriteLine("{0} = 0x4000;", curBlockSize);
c.P(lev); c.WriteLine("BitStream_EncodeConstraintWholeNumber(pBitStrm, 0xC1, 0, 0xFF);");
c.P(--lev); c.WriteLine("}");
c.P(lev); c.WriteLine("BitStream_AppendBits(pBitStrm, &{0}{1}[{2}/8], {3});", prefix, arrName, curItem, curBlockSize);
c.P(lev); c.WriteLine("{0} += {1};", curItem, curBlockSize);
c.P(lev); c.WriteLine("{0} -= {1};", nCount, curBlockSize);
c.P(--lev); c.WriteLine("}");
c.P(lev); c.WriteLine("if ({0} <= 0x7F)", nCount);
c.P(lev + 1); c.WriteLine("BitStream_EncodeConstraintWholeNumber(pBitStrm, {0}, 0, 0xFF);", nCount);
c.P(lev); c.WriteLine("else");
c.P(lev++); c.WriteLine("{");
c.P(lev); c.WriteLine("BitStream_AppendBit(pBitStrm, 1);");
c.P(lev); c.WriteLine("BitStream_EncodeConstraintWholeNumber(pBitStrm, {0}, 0, 0x7FFF);", nCount);
c.P(--lev); c.WriteLine("}");
c.P(lev); c.WriteLine("BitStream_AppendBits(pBitStrm, &{0}{1}[{2}/8], {3});", prefix, arrName, curItem, nCount);
}
示例15: EncodeNormal
private void EncodeNormal(PERIntegerEffectiveConstraint cn, StreamWriterLevel c, string var, int lev)
{
if (!cn.m_rootRange.m_minIsInfinite && !cn.m_rootRange.m_maxIsInfinite)
{
c.P(lev);
if (cn.m_rootRange.m_min == cn.m_rootRange.m_max)
c.WriteLine("/* No need to encode value since it will always be {0}*/", cn.m_rootRange.m_min);
else
c.WriteLine("BitStream_EncodeConstraintWholeNumber(pBitStrm, {0}, {1}, {2});", var, C.L(cn.m_rootRange.m_min), C.L(cn.m_rootRange.m_max));
}
else if (!cn.m_rootRange.m_minIsInfinite && cn.m_rootRange.m_maxIsInfinite)
{
c.P(lev);
c.WriteLine("BitStream_EncodeSemiConstraintWholeNumber(pBitStrm, {0}, {1});", var, C.L(cn.m_rootRange.m_min));
}
else
{
c.P(lev);
c.WriteLine("BitStream_EncodeUnConstraintWholeNumber(pBitStrm, {0});", var);
}
}