Skip to content

Missing Python usage example #131

Description

@fstarnaud

Hello !

Coming from Python using libclang bindings, I'm looking for a Quick Start guide to use PASTA.

A simple example such as this, but using PASTA (pypasta) instead of Clang (libclang and clang.cindex) Python bindings would be super useful as a Python bootstrap guide:

import clang.cindex
import sys

idx = clang.cindex.Index.create()

tu = idx.parse('example.cpp')

for diagnostic in tu.diagnostics:
    if diagnostic.severity >= clang.cindex.Diagnostic.Warning:
        print(f"Diagnostic: {diagnostic.spelling}")

print(f"Translation unit spelling: {tu.cursor.spelling}")

for child_cursor in tu.cursor.get_children():
    if child_cursor.kind == clang.cindex.CursorKind.FUNCTION_DECL:
        function_name = child_cursor.spelling
        return_type = child_cursor.result_type.spelling
        location = child_cursor.location
        
        print(f"\nFound Function: {function_name}")
        print(f"  Return type: {return_type}")
        print(f"  Location: line={location.line}, column={location.column}")
        
        for param in child_cursor.get_children():
            if param.kind == clang.cindex.CursorKind.PARM_DECL:
                print(f"  Parameter: {param.spelling} (Type: {param.type.spelling})")

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions