Parser/apis

Source   Edit  

like peg_api.c

Types

ParseErrorcode = enum
  E_OK, E_EOF
Source   Edit  
PyInteractiveSrcObject = ref object of PyStrObject
  lineNo*: int
Source   Edit  

Lets

pyInteractiveSrcObjectType {.inject.} = newPyType("interactivesrc",
    pyStrObjectType)
Source   Edit  

Procs

proc newPyInteractiveSrc(): PyInteractiveSrcObject {....raises: [],
    tags: [RootEffect], forbids: [].}
XXX: unstable, workaround for repl lineNo tracking (otherwise it will always be 1, as we create a new Lexer whose lineNo is initialized each time) Source   Edit  
proc newPyInteractiveSrcSimple(): PyInteractiveSrcObject {.cdecl, ...raises: [],
    tags: [RootEffect], forbids: [].}
Source   Edit  
proc ofExactPyInteractiveSrcObject(obj`gensym0: PyObject): bool {.cdecl, inline,
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc ofPyInteractiveSrcObject(obj`gensym0: PyObject): bool {.cdecl, inline,
    ...raises: [], tags: [], forbids: [].}
Source   Edit  
proc PyParser_ASTFromFile(fp: File; filename_obj: PyStrObject; enc: string;
                          mode: Mode; flags: PyCompilerFlags;
                          errcode: var ParseErrorcode; res: var Asdlmodl): PyBaseErrorObject {.
    ...raises: [], tags: [RootEffect, ReadIOEffect, WriteIOEffect], forbids: [].}
Source   Edit  
proc PyParser_ASTFromString(str: string; filename_obj: PyStrObject; mode: Mode;
                            flags: PyCompilerFlags; res: var Asdlmodl): PyBaseErrorObject {.
    ...raises: [], tags: [RootEffect, WriteIOEffect], forbids: [].}
Source   Edit  
proc PyParser_InteractiveASTFromFile(fp: File; filename_obj: PyStrObject;
                                     enc: string; mode: Mode; ps1, ps2: string;
                                     flags: PyCompilerFlags;
                                     errcode: var ParseErrorcode;
    interactive_src: var PyInteractiveSrcObject; res: var Asdlmodl): PyBaseErrorObject {.
    ...raises: [], tags: [RootEffect, WriteIOEffect], forbids: [].}
Source   Edit  
proc tokenize_and_cst_one(input: string; lexer: Lexer; rootCst: var ParseNode;
                          exc: var PyBaseErrorObject; filename_obj: PyStrObject): bool {.
    ...raises: [], tags: [RootEffect, WriteIOEffect], forbids: [].}
unstable. export for karax returns finished Source   Edit  

Templates

template audit_PyParser_AST(filename_obj) {..}
Source   Edit  
template audit_PyParser_AST_mayAsync(filename_obj) {..}
Source   Edit  
template interactiveHandleErrcode(res: untyped = nil) {..}
inner Source   Edit