IP Library Granted Patent US 12,307,254
Granted Patent B2
US 12,307,254 · App. 18/520,375 · Granted May 20, 2025

Systems and methods for handling macro compatibility for documents at a storage system

Inventors: Paneendra Anantha Rao Bapu (Bangalore, IN); Sowmith Manepalli (Hyderabad, IN); Sourav Poddar (Kolkata, IN); Abhay Garg (New Delhi, IN); Alexandre Ginet (Brooklyn, NY); Arijit De (Bangalore, IN)
Assignee: Google LLC
G06F9/3017G06F8/31G06F8/42G06F8/437G06F8/51G06F8/76G06F9/3836H04L67/1097
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 12,307,254
App. No.
18/520,375
Granted
May 20, 2025
Kind
B2
Abstract

A document including one or more macros in a first programming language is identified. A determination is made that one or more objects of the document are referenced by a function defined by a macro of the one or more macros. The function is converted into one or more sets of operations represented in a first programming language. A user is provided with access to the one or more objects of the document based on the one or more sets of operations represented in the second programming language.

Claims (46)

1. A method performed by a set of processing devices, the method comprising:

identifying a document of a storage system, the document comprising one or more macros in a first programming language, wherein the first programming language is not supported by the storage system;

determining that one or more objects of the document are referenced by a function defined by a macro of the one or more macros;

converting the function into one or more sets of operations represented in a second programming language, wherein the second programming language is supported by the storage system; and

providing a user with access to the one or more objects of the document based on the one or more sets of operations represented in the second programming language.

2. The method of claim 1 , wherein the storage system is a network-based storage system.

3. The method of claim 1 , wherein each set of operations corresponds to one of one or more candidate object types associated with the object, and wherein at least one of the one or more sets of operations is to be performed with respect to the object responsive to receiving an indication of a corresponding candidate object type for the object during execution of the macro.

4. The method of claim 3 , further comprising:

determining a semantic context for the object referenced by the function; and

identifying the one or more candidate object types associated with the object based on the determined semantic context.

5. The method of claim 3 , further comprising

parsing the one or more macros of the document into a syntax tree in the first programming language, the syntax tree comprising a plurality of nodes each corresponding to at least one of a respective object included in the macro or a respective function to be performed with respect to the object.

6. The method of claim 5 , wherein converting the function into one or more sets of operations represented in the second programming language comprises generating a set of nodes for a syntax tree in the second programming language, wherein each of the set of nodes corresponds to at least one of a candidate object type of the one or more candidate object types or a set of operations of the one or more sets of operations to be performed for the object.

7. The method of claim 1 , wherein the function corresponds to a default function for the macro in the first programming language, and wherein the method further comprises:

identifying the one or more sets of operations, wherein each of the one or more sets of operations corresponds to a default set of operations performed for the default function in the first programming language, and wherein each default set of operations is associated with a candidate object type referenced during execution of the macro.

8. The method of claim 7 , wherein identifying a set of operations of the one or more sets of operations comprises:

identifying, in a data structure associated with the default function of the macro in the first programming language, an entry corresponding to the candidate object type; and

extracting, from the identified entry, a default set of operations to be performed for the default function based on the corresponding candidate object type.

9. The method of claim 1 , wherein the first programming language is associated with a first document format type and the second programming language is associated with a second document format type.

10. A system comprising:

a memory; and

a set of processing devices coupled to the memory, the set of processing devices to perform operations comprising:

identifying a document of a storage system, the document comprising one or more macros in a first programming language, wherein the first programming language is not supported by the storage system;

determining that one or more objects of the document are referenced by a function defined by a macro of the one or more macros of the document;

converting the function into one or more sets of operations represented in a second programming language, wherein the second programming language is supported by the storage system; and

providing a user with access to the one or more objects of the document based on the one or more sets of operations represented in the second programming language.

11. The system of claim 10 , wherein the storage system is a network-based storage system.

12. The system of claim 10 , wherein each set of operations corresponds to one of one or more candidate object types associated with the object, and wherein at least one of the one or more sets of operations is to be performed with respect to the object responsive to receiving an indication of a corresponding candidate object type for the object during execution of the macro.

13. The system of claim 12 , wherein the operations further comprise:

determining a semantic context for the object referenced by the function; and

identifying the one or more candidate object types associated with the object based on the determined semantic context.

14. The system of claim 12 , wherein the operations further comprise:

parsing the one or more macros of the document into a syntax tree in the first programming language, the syntax tree comprising a plurality of nodes each corresponding to at least one of a respective object included in the macro or a respective function to be performed with respect to the object.

15. The system of claim 14 , wherein converting the function into one or more sets of operations represented in the second programming language comprises generating a set of nodes for a syntax tree in the second programming language, wherein each of the set of nodes corresponds to at least one of a candidate object type of the one or more candidate object types or a set of operations of the one or more sets of operations to be performed for the object.

16. The system of claim 10 , wherein the function corresponds to a default function for the macro in the first programming language, and wherein the operations further comprise:

identifying the one or more sets of operations, wherein each of the one or more sets of operations corresponds to a default set of operations performed for the default function in the first programming language, and wherein each default set of operations is associated with a candidate object type referenced during execution of the macro.

17. A non-transitory computer readable storage medium comprising instructions for a server that, when executed by a set of processing devices, cause the set of processing devices to perform operations comprising:

identifying a document of a storage system, the document comprising one or more macros in a first programming language, wherein the first programming language is not supported by the storage system;

determining that one or more objects of the document are referenced by a function defined by a macro of the one or more macros of the document;

converting the function into one or more sets of operations represented in a second programming language, wherein the second programming language is supported by the storage system; and

providing a user with access to the one or more objects of the document based on the one or more sets of operations represented in the second programming language.

18. The non-transitory computer readable storage medium of claim 17 , wherein the storage system is a network-based storage system.

19. The non-transitory computer readable storage medium of claim 17 , wherein each set of operations corresponds to one of one or more candidate object types associated with the object, and wherein at least one of the one or more sets of operations is to be performed with respect to the object responsive to receiving an indication of a corresponding candidate object type for the object during execution of the macro.

20. The non-transitory computer readable storage medium of claim 19 , the operations further comprising:

determining a semantic context for the object referenced by the function; and

identifying the one or more candidate object types associated with the object based on the determined semantic context.

Continuity (4)
Continuation 18150074 · Jan 4, 2023
Continuation 17217653 · Mar 30, 2021
Provisional Application 63113394 · Nov 13, 2020
Related Publication 20240095033A1 · Mar 21, 2024
References Cited (29)
US 5274821A · Rouquie · 1993 [cited by applicant]
US 7730025B1 · Rice et al. · 2010 [cited by applicant]
US 7761843B2 · Ortscheid · 2010 [cited by applicant]
US 8453126B1 · Ganelin · 2013 [cited by applicant]
US 8549489B2 · Ortscheid · 2013 [cited by applicant]
US 8826304B2 · Harm et al. · 2014 [cited by applicant]
US 11061652B1 · Biswas et al. · 2021 [cited by applicant]
US 20020004806A1 · Myers et al. · 2002 [cited by applicant]
US 20040133878A1 · Cole · 2004 [cited by examiner]
US 20070005342A1 · Ortscheid · 2007 [cited by applicant]
US 20070044012A1 · Suver et al. · 2007 [cited by applicant]
US 20090138846A1 · Shneerson · 2009 [cited by examiner]
US 20100257512A1 · Ortscheid · 2010 [cited by applicant]
US 20110041141A1 · Harm · 2011 [cited by examiner]
US 20150020051A1 · Rabinovitch et al. · 2015 [cited by applicant]
US 20160210129A1 · Verlaguet · 2016 [cited by applicant]
US 20160357533A1 · De et al. · 2016 [cited by applicant]
US 20170277560A1 · Lucas et al. · 2017 [cited by applicant]
US 20180004489A1 · Proctor · 2018 [cited by examiner]
CA 3075627A1 · 2019 [cited by applicant]
CN 112230934A · 2021 [cited by applicant]
WO WO2017189816A1 · 2017 [cited by examiner]
Yeh et al. “Sikuli: Using GUI Screenshots for Search and Automation” UIST'09, Oct. 4-7, 2009. (Year: 2009). [cited by examiner]
Leshed et al. “CoScipter: Automation & Sharing How-To Knowledge in the Enterprise” CHI 2008 Proceedings, End-Users Sharing and Tailoring Software Apr. 5-10, 2008. (Year: 2008). [cited by examiner]
Machine Translation of Japanese Patent Application JP 3833905 B2. (Year: 2006). [cited by examiner]
PCT International Search Report and Written Opinion for International Application No. PCT/US2021/057126, mailed Feb. 4, 2022, 16 pages. [cited by applicant]
“Macro Converter add-on overview” from Google, Nov. 5, 2020. (Year: 2020). [cited by applicant]
OLEFormat.ConvertTo method (Word) from Microsoft Learn, Sep. 12, 2021. (Year: 2021). [cited by applicant]
“Mapping of SMIv2 Macros to IDL” from The Open Group, 2000. (Year: 2000). [cited by applicant]