Why buy a commercial parser? In some cases, there are open-source parsers available, so why consider buying a commercial parser?
Depending on your situation, you may need a parser that has been thoroughly tested and documented, and there is someone to call if you encounter any problems.
We create and distribute a commercial off-the-shelf SAS parser.
You may want to buy a Commercial Parser to have a parser ready for the integration, without any technical complexity and easy to integrate. A ready-to-go SAS parser.
Three reasons to buy:
SAS is a language that has been used extensively for decades.
Nowadays, billions of lines composing extremely valuable software are defined in SAS.
There are several operations you may want to perform on your SAS code, which our SAS parser might help you with. Let’s discover them:
How to use a parser to build these applications?
We offer the parser in two different formats, allowing you to choose the best approach for your needs:
Service: Access the parser via a cloud-based API.
Library: Integrate it directly into your applications using Java, Python, C#, JavaScript, or Kotlin. This would work without any connection to our API, if not for validating a key (i.e., no code would be shared with our servers).
Once you acquire the parser, we will provide comprehensive documentation to facilitate onboarding.
An introductory meeting will be held to guide you through the setup and integration.
For those needing additional expertise, we also offer advanced training, coaching, and support to help implement more sophisticated language engineering solutions.

How can I learn more?
Do you have questions?
You can schedule a quick meeting with our experts!
We suggest you fill out the linked questionnaire; this will allow us to better understand your use case and arrive well-prepared.
What does it matter in a parser?

We have built tens of parsers for our clients, written books and created video courses, written hundreds of articles, and given presentations on multiple continents. We have learned some things that are important in a parser to support what our clients want to build with them.
Our parsers provide an Abstract Syntax Tree (AST), not a Parse Tree. This may sound like some academic term just thrown out to appear smart. It is not. The difference is that our parsers’ output is more high-level and easier to work with, and we think this could be relevant to you as well.
We provide AST libraries to process the output of our parsers. They permit you to work with the tree more easily to accomplish your goals. We know that as we have built interpreters, editors, compilers, transpilers, and other tools using those libraries, we built them as tools we needed to use in our work.
Error recovery: our parsers can deal with errors in code and recover, to build an AST. This is important for applications that need to process also incorrect code. This is always the case for editors, for example, as the user is constantly writing code, and until they are finished, the code is typically incorrect.

How can I learn more?
Do you have questions?
You can schedule a quick meeting with our experts!
We suggest you fill out the linked questionnaire; this will allow us to better understand your use case and arrive well-prepared.
Technical specifications, legal & license details

One of the most challenging aspects of parsing SAS is handling macros, which introduce significant complexity due to their ability to generate dynamic code. Our parser:
1. Supports macro recognition without expansion. This feature allows us to analyze macros in their original form rather than after execution.
2. Correctly processes nested macros, parameterized macros, and macro-generated code, whenever this is technically possible. This ensures a high level of support for real-world SAS applications.
3. Handles macro variable resolution and macro functions to preserve the logic and structure of SAS programs.
4. Support for Multiple SAS Versions
Our parser supports various versions of the SAS language, ensuring compatibility with different environments. We provide support for the entirety of the language, including:
– Base SAS – The core SAS language, used for data manipulation and reporting.
– SAS Macro Language – Allowing for dynamic and reusable scripting in SAS programs.
– SAS/SQL (PROC SQL) – Parsing embedded SQL queries within SAS code.
– SAS DATA Step Processing – Handling complex data transformations using the SAS DATA step.
– SAS Procedures (PROC) – Supporting the parsing of commonly used PROC statements such as PROC MEANS, PROC REPORT, PROC TRANSPOSE, and many more.
Our parser continuously evolves to accommodate new features and syntax variations introduced in SAS updates.
We provide a commercial license. You will get access to the documentation, tests, and build scripts used to develop the parser itself. You can choose a Standard, Distribution, or Service License. You will also get our support included with it.
Strumenta Playground
Strumenta Playground is the virtual place where you can evaluate the parsers that we build. You can choose among a number of open-source examples source files and look at the output of the parser for that file – an AST (Abstract Syntax Tree) representing the logical structure of the input file (and not just the grammatical decomposition of the source into keywords, identifiers, punctuation, and other elements).
We distribute all the parsers we showcase here as libraries that you can use natively in Java, JavaScript, Python, and any other language, thanks to support for interoperable formats such as EMF/ECore.
Discover the SAS Parser documentation!
You can find the documentation for our SAS Ready-to-Go parser.
Frequently Asked Questions
If I need more information?
When you book a meeting, we will provide several resources regarding our methodology, articles, webinars, and tutorials. If you want to learn more, don’t hesitate to book a meeting with our experts.
How can I evaluate it?
We created a web application specifically to let you test the parser. You will have the possibility to navigate a list of pre-defined examples and see the corresponding AST produced. The web application will render the AST and let you navigate it so that you can more easily familiarize yourself with the AST produced.
The application is called Strumenta Playground. You can navigate a set of examples and examine the output the parser produces for those examples.
You can find it at https://playground.strumenta.com/
Anything else you could help me with?
Typically our clients buy a parser to use as part of larger systems. Sometimes they have all the internal skills they need to integrate the parser into their systems; in some cases, they ask us for training courses, support with the architectural design, or the implementation of the entire system. We are specialists in Language Engineering and can offer all these supporting services to ensure you reach your goals.
How can I learn more?
Do you have questions?
You can schedule a quick meeting with our experts!
We suggest you fill out the linked questionnaire; this will allow us to better understand your use case and arrive well-prepared.