Ejemplo n.º 1
0
        public LangSysRecord GetLangSysRecord(uint i)
        {
            LangSysRecord lsr = null;

            if (i < LangSysCount)
            {
                uint offset = m_offsetScriptTable + (uint)FieldOffsets.LangSysRecord + i * 6;
                lsr               = new LangSysRecord();
                lsr.LangSysTag    = m_bufTable.GetTag(offset);
                lsr.LangSysOffset = m_bufTable.GetUshort(offset + 4);
            }

            return(lsr);
        }
Ejemplo n.º 2
0
 public LangSysTable_val GetLangSysTable_val(LangSysRecord lsr)
 {
     return new LangSysTable_val((ushort)(m_offsetScriptTable + lsr.LangSysOffset), m_bufTable);
 }
Ejemplo n.º 3
0
        public bool Validate(Validator v, string sIdentity, OTTable table)
        {
            bool bRet = true;

            bool bScriptTableOk = true;

            // check the DefaultLangSys offset
            if (DefaultLangSysOffset != 0)
            {
                if (m_offsetScriptTable + DefaultLangSysOffset > m_bufTable.GetLength())
                {
                    v.Error(T.T_NULL, E._OTL_ScriptTable_E_DefaultLangSysOffset, table.m_tag, sIdentity);
                    bScriptTableOk = false;
                    bRet           = false;
                }
                else
                {
                    // check the DefaultLangSys table
                    LangSysTable_val lst = GetDefaultLangSysTable_val();
                    bRet &= lst.Validate(v, sIdentity + ", DefaultLangSysTable", table);
                }
            }

            // check the LansgSysRecord array length
            if (m_offsetScriptTable + (uint)FieldOffsets.LangSysRecord + LangSysCount * 6 > m_bufTable.GetLength())
            {
                v.Error(T.T_NULL, E._OTL_ScriptTable_E_LangSysRecordArray_pastEOT, table.m_tag, sIdentity);
                bScriptTableOk = false;
                bRet           = false;
            }

            // check that the LangSysRecord array is sorted alphabetically
            if (LangSysCount > 1)
            {
                for (uint i = 0; i < LangSysCount - 1; i++)
                {
                    LangSysRecord ThisLsr = GetLangSysRecord(i);
                    LangSysRecord NextLsr = GetLangSysRecord(i + 1);
                    if (ThisLsr.LangSysTag >= NextLsr.LangSysTag)
                    {
                        v.Error(T.T_NULL, E._OTL_ScriptTable_E_LangSysRecordArray_order, table.m_tag, sIdentity);
                        bScriptTableOk = false;
                        bRet           = false;
                    }
                }
            }

            // check each LangSysRecord
            for (uint i = 0; i < LangSysCount; i++)
            {
                LangSysRecord lsr = GetLangSysRecord(i);

                // check the tag
                if (!lsr.LangSysTag.IsValid())
                {
                    v.Error(T.T_NULL, E._OTL_ScriptTable_E_LangSysRecord_tag, table.m_tag, sIdentity + ", LangSysRecord[" + i + "]");
                    bScriptTableOk = false;
                    bRet           = false;
                }

                // check the offset
                if (m_offsetScriptTable + lsr.LangSysOffset > m_bufTable.GetLength())
                {
                    v.Error(T.T_NULL, E._OTL_ScriptTable_E_LangSysRecord_offset, table.m_tag, sIdentity + ", LangSysRecord[" + i + "]");
                    bScriptTableOk = false;
                    bRet           = false;
                }

                // validate the langsys table
                LangSysTable_val lst = GetLangSysTable_val(lsr);
                bRet &= lst.Validate(v, sIdentity + ", LangSysRecord[" + i + "], LangSysTable", table);
            }

            if (bScriptTableOk)
            {
                v.Pass(T.T_NULL, P._OTL_ScriptTable_P_valid, table.m_tag, sIdentity);
            }

            return(bRet);
        }
Ejemplo n.º 4
0
 public LangSysTable_val GetLangSysTable_val(LangSysRecord lsr)
 {
     return(new LangSysTable_val((ushort)(m_offsetScriptTable + lsr.LangSysOffset), m_bufTable));
 }
Ejemplo n.º 5
0
 public virtual LangSysTable GetLangSysTable(LangSysRecord lsr)
 {
     return new LangSysTable((ushort)(m_offsetScriptTable + lsr.LangSysOffset), m_bufTable);
 }
Ejemplo n.º 6
0
        public LangSysRecord GetLangSysRecord(uint i)
        {
            LangSysRecord lsr = null;

            if (i < LangSysCount)
            {
                uint offset = m_offsetScriptTable + (uint)FieldOffsets.LangSysRecord + i*6;
                lsr = new LangSysRecord();
                lsr.LangSysTag = m_bufTable.GetTag(offset);
                lsr.LangSysOffset = m_bufTable.GetUshort(offset+4);
            }

            return lsr;
        }
Ejemplo n.º 7
0
 public virtual LangSysTable GetLangSysTable(LangSysRecord lsr)
 {
     return(new LangSysTable((ushort)(m_offsetScriptTable + lsr.LangSysOffset), m_bufTable));
 }