IP Library Granted Patent US 10,083,158
Granted Patent B2
US 10,083,158 · App. 15/376,250 · Granted Sep 25, 2018

Fast CSS parser

Inventor: Nathan David McWilliams (Atlanta, GA)
Assignee: salesforce.com, inc.
G06F17/227G06F17/2247G06F17/272G06F17/3089G06F17/30905G06F8/20G06F17/30864G06Q10/10G06Q30/02H04L67/42
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,083,158
App. No.
15/376,250
Granted
Sep 25, 2018
Kind
B2
Abstract

The technology disclosed relates to systems and methods for providing a CSS parser to improve the maintainability of code that displays data to users. The technology disclosed also improves the performance and consistency of the code that delivers a user's experience.

Claims (37)

1. A computer-implemented method of transforming a cascading style sheet (“CSS”) codebase for a website, including:

using a processor, accessing in memory a CSS codebase that includes target tokens in customizable segments, which are customizable responsive to an input invoking a module that uses the CSS codebase;

scanning the CSS codebase and locating the customizable segments of the CSS codebase that include the target tokens, customization of the customizable segments of the CSS codebase being located based at least in part on an attribute of a user;

parsing only the located customizable segments of the CSS codebase to produce segment parse trees based on the parsed customizable segments;

transforming the target tokens from the segment parse trees according to a set of customization functions selected from among multiple alternative sets of customization functions that transform the target tokens within the customizable segments of the CSS codebase; and

outputting a customized codebase for use with the module invoked by the input.

2. The method of claim 1 , wherein a target token of the target tokens is combined with application display type identification information provided by a requesting application and used to select customized data for display according to an application display interface used with the module.

3. The method of claim 1 , wherein the located customizable segments parsed to produce the segment parse trees include a target token and at least a block of related key-value pairs, the related key-value pairs being delimited within curly brackets { . . . }.

4. The method of claim 1 , wherein the located customizable segments parsed to produce the segment parse trees include a target token and at least a block of related key-value pairs, the related key-value pairs being delimited between a pair of delimiter characters.

5. The method of claim 1 , wherein a customization function of the selected set of customization functions specifies a logo used in a display.

6. The method of claim 1 , wherein a customization function of the selected set of customization functions specifies an appearance of a typeface in a display.

7. The method of claim 1 , wherein a customization function of the selected set of customization functions specifies a background appearance in a display.

8. A computer-implemented system that transforms a cascading style sheet (“CSS”) codebase for a website, including:

a processor and first memory, the first memory holding code that, when executed, causes the processor to:

access in a second memory a CSS codebase that includes target tokens in customizable segments, which are customizable responsive to an input invoking a module that uses the CSS codebase;

scan the CSS codebase and locate the customizable segments of the CSS codebase that include the target tokens, customization of the customizable segments of the CSS codebase being located based at least in part on an attribute of a user;

parse only the located customizable segments of the CSS codebase to produce segment parse trees based on the parsed customizable segments;

transform the target tokens from the segment parse trees according to a set of customization functions selected from among multiple alternative sets of customization functions that transform the target tokens within the customizable segments of the CSS codebase; and

output a customized codebase for use with the module invoked by the input.

9. The system of claim 8 ,

wherein a target token of the target tokens includes an identifier accompanied by parameters that identify an invoked customization function, and

wherein the target token provides a default value if the identified customization function is not defined for the selected set of customization functions.

10. The system of claim 8 , wherein a target token of the target tokens is used to select a customized logo used in a display.

11. The system of claim 8 , wherein a customization function of the selected set of customization functions specifies a background appearance in a display.

12. The system of claim 8 , wherein the set of customization functions is selected responsive, at least in part, to a target token of the target tokens and at least a key-value pair of a block of related key-value pairs included in the customizable segments of the CSS codebase.

13. The system of claim 8 , wherein the set of customization functions is selected responsive, at least in part, to a target token of the target tokens and at least a block of related key-value pairs included in the customizable segments of the CSS codebase, the related key-value pairs being delimited within curly brackets { . . . }.

14. A non-transitory computer readable storage medium impressed with computer program instructions to transform a cascading style sheet (“CSS”) codebase for a website, the instructions, when executed on a processor, implement a method comprising:

accessing in a memory a CSS codebase that includes target tokens in customizable segments, which are customizable responsive to an input invoking a module that uses the CSS codebase;

scanning the CSS codebase and locating the customizable segments of the CSS codebase that include the target tokens, customization of the customizable segments of the CSS codebase being located based at least in part on an attribute of a user;

parsing only the located customizable segments of the CSS codebase to produce segment parse trees based on the parsed customizable segments;

transforming the target tokens from the segment parse trees according to a set of customization functions selected from among multiple alternative sets of customization functions that transform the target tokens within the customizable segments of the CSS codebase; and

outputting a customized codebase for use with the module invoked by the input.

15. The non-transitory computer readable storage medium of claim 14 , wherein the customizable segments parsed to produce the segment parse trees include the target tokens and at least a key-value pair of a block of related key-value pairs.

16. The non-transitory computer readable storage medium of claim 14 , wherein the customizable segments parsed to produce the segment parse trees include the target tokens and at least a block of related key-value pairs, the key-value pairs being delimited within curly brackets { . . . }.

17. The non-transitory computer readable storage medium of claim 14 , wherein a customization function of the selected set of customization functions specifies a background appearance in a display.

18. The non-transitory computer readable storage medium of claim 14 , wherein the set of customization functions is selected responsive, at least in part, to a target token of the target tokens and at least a key-value pair of a block of related key-value pairs included in the customizable segments of the CSS codebase.

19. The non-transitory computer readable storage medium of claim 14 , wherein the set of customization functions is selected responsive, at least in part, to a target token of the target tokens and at least a block of related key-value pairs included in the customizable segments of the CSS codebase, the related key-value pairs being delimited within curly brackets { . . . }.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069431/0164 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2019
From: MCWILLIAMS, NATHAN DAVID
To: SALESFORCE.COM, INC.
Reel/Frame 050360/0452 →
Continuity (2)
Continuation 14320198 · Jun 30, 2014
Related Publication 20170091157A1 · Mar 30, 2017