nsICSSDeclaration* aDeclaration, PRInt32 aID)
nsICSSDeclaration* aDeclaration)
PRBool CSSParserImpl::ParseProperty(PRInt32* aErrorCode,                                    const char* aName,                                    nsICSSDeclaration* aDeclaration,                                    PRInt32 aID){  switch (aID) {  case PROP_BACKGROUND:    return ParseBackground(aErrorCode, aDeclaration);  case PROP_BACKGROUND_ATTACHMENT:    return ParseEnum(aErrorCode, aDeclaration, aName, kBackgroundAttachmentKTable);  case PROP_BACKGROUND_COLOR:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_CK,                        kBackgroundColorKTable);  case PROP_BACKGROUND_FILTER:    return ParseBackgroundFilter(aErrorCode, aDeclaration, aName);  case PROP_BACKGROUND_IMAGE:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_URL | VARIANT_NONE,                        nsnull);  case PROP_BACKGROUND_POSITION:    return ParseBackgroundPosition(aErrorCode, aDeclaration, aName);  case PROP_BACKGROUND_REPEAT:    return ParseEnum(aErrorCode, aDeclaration, aName, kBackgroundRepeatKTable);  case PROP_BORDER:    return ParseBorder(aErrorCode, aDeclaration);  case PROP_BORDER_COLOR:    return ParseBorderColor(aErrorCode, aDeclaration);  case PROP_BORDER_STYLE:    return ParseBorderStyle(aErrorCode, aDeclaration);  case PROP_BORDER_BOTTOM:    return ParseBorderSide(aErrorCode, aDeclaration, kBorderBottomNames, 0);  case PROP_BORDER_LEFT:    return ParseBorderSide(aErrorCode, aDeclaration, kBorderLeftNames, 1);  case PROP_BORDER_RIGHT:    return ParseBorderSide(aErrorCode, aDeclaration, kBorderRightNames, 2);  case PROP_BORDER_TOP:    return ParseBorderSide(aErrorCode, aDeclaration, kBorderTopNames, 3);  case PROP_BORDER_BOTTOM_COLOR:  case PROP_BORDER_LEFT_COLOR:  case PROP_BORDER_RIGHT_COLOR:  case PROP_BORDER_TOP_COLOR:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_C, nsnull);  case PROP_BORDER_BOTTOM_STYLE:  case PROP_BORDER_LEFT_STYLE:  case PROP_BORDER_RIGHT_STYLE:  case PROP_BORDER_TOP_STYLE:    return ParseEnum(aErrorCode, aDeclaration, aName, kBorderStyleKTable);  case PROP_BORDER_BOTTOM_WIDTH:  case PROP_BORDER_LEFT_WIDTH:  case PROP_BORDER_RIGHT_WIDTH:  case PROP_BORDER_TOP_WIDTH:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_KL,                        kBorderWidthKTable);  case PROP_BORDER_WIDTH:    return ParseBorderWidth(aErrorCode, aDeclaration);  case PROP_CLEAR:    return ParseEnum(aErrorCode, aDeclaration, aName, kClearKTable);  case PROP_CLIP:    return ParseClip(aErrorCode, aDeclaration);  case PROP_COLOR:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_COLOR, nsnull);  case PROP_CURSOR:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_AHK, kCursorKTable);  case PROP_DIRECTION:    return ParseEnum(aErrorCode, aDeclaration, aName, kDirectionKTable);  case PROP_DISPLAY:    return ParseEnum(aErrorCode, aDeclaration, aName, kDisplayKTable);  case PROP_FILTER:    return ParseForegroundFilter(aErrorCode, aDeclaration, aName);  case PROP_FLOAT:    return ParseEnum(aErrorCode, aDeclaration, aName, kFloatKTable);  case PROP_FONT:    return ParseFont(aErrorCode, aDeclaration, aName);  case PROP_FONT_FAMILY:    return ParseFontFamily(aErrorCode, aDeclaration, aName);  case PROP_FONT_SIZE:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_KLP,                        kFontSizeKTable);  case PROP_FONT_STYLE:    return ParseEnum(aErrorCode, aDeclaration, aName, kFontStyleKTable);  case PROP_FONT_VARIANT:    return ParseEnum(aErrorCode, aDeclaration, aName, kFontVariantKTable);  case PROP_FONT_WEIGHT:    return ParseFontWeight(aErrorCode, aDeclaration, aName);  case PROP_HEIGHT:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_AHLP, nsnull);  case PROP_LEFT:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_AHLP, nsnull);  case PROP_LINE_HEIGHT:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_HLPN | VARIANT_NORMAL,                        nsnull);  case PROP_LIST_STYLE:    return ParseListStyle(aErrorCode, aDeclaration);  case PROP_LIST_STYLE_IMAGE:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_UK,                        kListStyleImageKTable);  case PROP_LIST_STYLE_POSITION:    return ParseEnum(aErrorCode, aDeclaration, aName, kListStylePositionKTable);  case PROP_LIST_STYLE_TYPE:    return ParseEnum(aErrorCode, aDeclaration, aName, kListStyleKTable);  case PROP_MARGIN:    return ParseMargin(aErrorCode, aDeclaration);  case PROP_MARGIN_BOTTOM:  case PROP_MARGIN_LEFT:  case PROP_MARGIN_RIGHT:  case PROP_MARGIN_TOP:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_KLP,                        kMarginSizeKTable);  case PROP_PADDING:    return ParsePadding(aErrorCode, aDeclaration);  case PROP_PADDING_BOTTOM:  case PROP_PADDING_LEFT:  case PROP_PADDING_RIGHT:  case PROP_PADDING_TOP:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_LP, nsnull);  case PROP_OPACITY:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_HPN, nsnull);  case PROP_OVERFLOW:    return ParseEnum(aErrorCode, aDeclaration, aName, kOverflowKTable);  case PROP_POSITION:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_HMK, kPositionKTable);  case PROP_TEXT_ALIGN:    return ParseEnum(aErrorCode, aDeclaration, aName, kTextAlignKTable);  case PROP_TEXT_DECORATION:    return ParseTextDecoration(aErrorCode, aDeclaration, aName);  case PROP_TEXT_INDENT:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_LP, nsnull);  case PROP_TEXT_TRANSFORM:    return ParseEnum(aErrorCode, aDeclaration, aName, kTextTransformKTable);  case PROP_TOP:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_AHLP, nsnull);  case PROP_VERTICAL_ALIGN:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_KP,                        kVerticalAlignKTable);  case PROP_VISIBILITY:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_HK, kVisibilityKTable);  case PROP_WHITE_SPACE:    return ParseEnum(aErrorCode, aDeclaration, aName, kWhitespaceKTable);  case PROP_WIDTH:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_AHLP, nsnull);  case PROP_LETTER_SPACING:  case PROP_WORD_SPACING:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_HL | VARIANT_NORMAL, nsnull);  case PROP_Z_INDEX:    return ParseVariant(aErrorCode, aDeclaration, aName, VARIANT_AHI, nsnull);  }  return PR_FALSE;}