IP Library Granted Patent US 9,495,353
Granted Patent B2
US 9,495,353 · App. 14/526,066 · Granted Nov 15, 2016

Method and system for generating a parser and parsing complex data

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 9,495,353
App. No.
14/526,066
Granted
Nov 15, 2016
Kind
B2
Abstract

Computer-implemented systems and methods are disclosed for constructing a parser that parses complex data. In some embodiments, a method is provided for receiving a parser definition as an input to a parser generator and generating a parser at least in part from the parser definition. In some embodiments, the generated parser comprises two or more handlers forming a processing pipeline. In some embodiments, the parser receives as input a first string into the processing pipeline. In some embodiments, the parser generates a second string by a first handler and inputs the second string regeneratively into the parsing pipeline, if the first string matches an expression specified for the first handler in the parser definition.

Claims (39)

1. A system configured to generate a parser, the system comprising:

a memory device configured to store a set of instructions; and

one or more processors configured to execute the set of instructions to perform the following operations:

receive a parser definition as an input to a parser generator, the parser definition including one or more handler definitions, wherein each handler definition of the one or more handler definitions comprises a handler action definition and at least one handler definition of the one or more handler definitions comprises a handler listener definition; and

generate the parser using the parser definition, wherein the parser comprises a parsing pipeline comprising two or more handlers, wherein output from a first handler of the two or more handlers is provided to a second handler of the two or more handlers; and

execute the generated parser.

2. The system of claim 1 , wherein:

a handler action definition comprises definitions for one or more actions; and

a handler listener definition comprises one or more string comparisons.

3. The system of claim 2 , wherein two or more string comparisons are associated through a Boolean expression.

4. The system of claim 1 , wherein the one or more processors are configured to execute further instructions to perform the following operation:

store the generated parser in a parser cache.

5. The system of claim 4 , wherein the one or more processors are configured to execute further instructions to perform the following operations:

receive a request to execute the generated parser;

retrieve the generated parser from the parser cache; and

execute the generated parser retrieved from the parser cache, wherein the executed parser acts on data to generate an output.

6. A method for generating a parser, the method being performed by one or more processors and comprising:

receiving a parser definition as an input to a parser generator, the parser definition including one or more handler definitions, wherein each handler definition of the one or more handler definitions comprises a handler action definition and at least one handler definition of the one or more handler definitions comprises a handler listener definition; and

generating, using one or more processors, a parser using the parser definition, wherein the parser comprises a parsing pipeline comprising two or more handlers, wherein output from a first handler of the two or more handlers is provided to a second handler of the two or more handlers; and

executing the generated parser.

7. The method of claim 6 , wherein:

a handler action definition comprises definitions for one or more actions; and

a handler listener definition comprises one or more string comparisons.

8. The method of claim 7 , wherein two or more string comparisons are associated through a Boolean expression.

9. The method of claim 6 , further comprising storing, with one or more processors, the generated parser in a parser cache.

10. The method of claim 9 , further comprising:

receiving a request to execute the generated parser;

retrieving the generated parser from the parser cache; and

executing the generated parser retrieved from the parser cache, wherein the executed parser acts on data to generate an output.

11. The method of claim 9 , wherein the storing further comprises selecting an entry into which the constructed parser will be stored within the parser cache.

12. The method of claim 11 , wherein the selected entry is determined at least in part by identifying the cache entry that was least recently used.

13. A non-transitory computer readable medium that stores a set of instructions that are executable by at least one processor of an electronic device to cause the electronic device to perform a method for generating a parser, the method comprising:

receiving a parser definition as an input to a parser generator, the parser definition including one or more handler definitions, wherein each handler definition of the one or more handler definitions comprises a handler action definition and at least one handler definition of the one or more handler definitions comprises a handler listener definition; and

generating, using one or more processors, a parser using the parser definition, wherein the parser comprises a parsing pipeline comprising two or more handlers, wherein output from a first handler of the two or more handlers is provided to a second handler of the two or more handlers; and

executing the generated parser.

14. The non-transitory computer readable medium of claim 13 , wherein:

a handler action definition comprises definitions for one or more actions; and

a handler listener definition comprises one or more string comparisons.

15. The method of claim 1 , wherein at least one of the two or more handlers is a default handler.

Assignments (8)
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2014
From: ELLIOT, MARK
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 034053/0813 →