python2igcse
Version:
Convert Python code to IGCSE Pseudocode format
63 lines • 1.62 kB
TypeScript
import { IGCSEDataType } from '../types/igcse';
/**
* Basic interface for Python AST nodes
*/
interface ASTNode {
type: string;
lineno?: number;
col_offset?: number;
[key: string]: any;
}
/**
* Visitor class responsible for processing expressions
*/
export declare class ExpressionVisitor {
/**
* Convert expressions to IGCSE pseudocode
*/
visitExpression(node: ASTNode): string;
/**
* Simple expression parsing
*/
private parseRawExpression;
private formatConstant;
private formatNameConstant;
private visitBinOp;
private visitUnaryOp;
private visitCompare;
private visitBoolOp;
private visitCallExpression;
private visitAttribute;
private visitSubscript;
private visitList;
private visitDict;
private visitListComp;
private visitIfExp;
private visitJoinedStr;
convertBuiltinFunction(func: string, args: string[]): string | null;
private convertOperator;
private convertUnaryOperator;
private convertCompareOperator;
/**
* Infer type from value
*/
inferTypeFromValue(node: ASTNode): IGCSEDataType;
/**
* Check if it's a numeric constant
*/
isNumericConstant(node: ASTNode): boolean;
/**
* Get the value of a numeric constant
*/
getNumericValue(node: ASTNode): number;
/**
* Check if it's array initialization
*/
isArrayInitialization(node: ASTNode): boolean;
/**
* Check if it's an explicit string type
*/
private isExplicitStringType;
}
export {};
//# sourceMappingURL=expression-visitor.d.ts.map