PDL Syntax — VS Code Extension
Unofficial extension. This project is not affiliated with, endorsed by, or officially released by ISRA VISION GmbH. PDL and Parsytec are trademarks of their respective owners.
Language support for PDL (Parameter Description Language) .pfa files used in ISRA VISION HTx surface inspection systems.
Features
| Feature |
Details |
| Syntax Highlighting |
Keywords, operators, strings, comments, numbers, ${ } / $[ ] operators |
| Code Completion |
100+ built-in functions (Select*, Hash*, SetOf*, math, string, I/O, …) |
| Hover Documentation |
Hover over built-in function names for signature + description |
| Signature Help |
Triggered on ( for built-in functions with parameter info |
| Snippets |
if, forall, prog, setof, ${ $}, $[ $] |
| Code Formatter |
Document / selection formatting via built-in vsce formatter |
Built-in Function Suggestions


What is PDL?
PDL is the scripting language embedded in the ISRA-Parsytec HTS quality-inspection framework. Scripts (.pfa files) configure classifiers, defect-set processing pipelines, and post-processing workflows.
The main system configuration is typically loaded from:
C:\ois\config\sis_params.pfa
This file uses import to include other .pfa files, building up the full configuration tree.
Language Highlights
Eval-Once Operator ${ … $}
Evaluates the enclosed expression once and caches the result for subsequent calls.
setThreshold = ${ lookup("threshold_table", productID) $};
Range-Array Operator $[ … $]
Constructs a range array — all elements are considered simultaneously rather than sequentially.
bands = $[ 0, 1, 2, 3, 4 $];
Defect Set Methods
The select* family queries defect sets:
merged = defects.selectMerged(-1); // all merged defects
area = defects.selectArea(100); // defects with area >= 100
File Associations
The extension automatically activates for any file with the .pfa extension.
Requirements
VS Code 1.85.0 or later.
Known Limitations
- Semantic validation (type checking, undefined variables) is not yet implemented.
- Multi-file
import resolution does not follow includes across files.
License
See LICENSE.txt included in the extension package.