private void readMembers(TFileType t) { string name = ""; bool vStatic = false; bool vFinal = false; while (currentToken != null) { if (currentToken.token == ECodeToken.brBigBraceEnd) { break; } TMember mem = readMember(); if (mem != null) { if (!mem.name.ToLower().StartsWith("webkit") && !mem.name.ToLower().StartsWith("onwebkit")) { if (mem is TMethod) { var met = mem as TMethod; for (var i = 0; i < met.parameters.Count; i++) { if (met.parameters[i].isOptional()) { var newMem = new TMethod(t) { baseMethod = met.baseMethod, isPrivate = met.isPrivate, name = met.name, resultType = met.resultType }; for (var i2 = 0; i2 < i; i2++) { newMem.parameters.Add(met.parameters[i2]); } t.members.addWithCheck(newMem); } } } t.members.addWithCheck(mem); } } getNextToken(); } }
private TMember readMember() { bool vStatic = false; bool vConst = false; bool vFinal = false; bool vReadonly = false; bool vAttribute = false; TType type = null; string name = ""; TMember mem = null; var attrList = new TAttributeList(); while (true) { switch (currentToken.token) { case ECodeToken.brSmallBraceBegin: attrList = readAttributes(); break; case ECodeToken.kwStatic: vStatic = true; getNextToken(); break; case ECodeToken.kwConst: vConst = true; getNextToken(); break; case ECodeToken.kwAttribute: vAttribute = true; getNextToken(); break; case ECodeToken.kwReadonly: vReadonly = true; getNextToken(); break; //case ECodeToken.kwFinal: // vFinal = true; // break; case ECodeToken.ltString: type = readType(); name = currentToken.value; getNextToken(); if (currentToken.token == ECodeToken.brBraceBegin) { mem = new TMethod(currentInterfaceType); mem.name = name; mem.resultType = type; mem.attributes = attrList; readParameters((TMethod)mem); checkGotoEndOfStatement(); } else { if (vAttribute) { mem = new TProperty(currentInterfaceType); mem.name = name; mem.resultType = type; mem.attributes = attrList; var prop = (TProperty)mem; prop.canWrite = !vReadonly; checkGotoEndOfStatement(); return(mem); } else { mem = new TField(currentInterfaceType); mem.name = name; mem.resultType = type; mem.attributes = attrList; if (currentToken.token == ECodeToken.blEquals) { getNextToken(); string Value = currentToken.value; getNextToken(); if (currentToken.token == ECodeToken.ltString) { Value += currentToken.value; if (Value.ToLower() == "0xffffffff") { Value = "0xFFFFFFF"; } } ((TField)mem).value = Value; } return(mem); } } break; default: getNextToken(); break; } if ((currentToken == null) || (currentToken.token == ECodeToken.syEndOfCommand)) { break; } } return(mem); }