uxmal / pytocs

Converts Python source to C#
Apache License 2.0
552 stars 167 forks source link

pytocs 6.0 cli exception #90

Closed ATECoder closed 1 year ago

ATECoder commented 1 year ago

running the cli command with the -r on this project: https://github.com/llemish/PyHiSLIP.git

throws an exception when processing the pyhislip.py file

` AST cache is at: C:\Users\David\AppData\Local\Temp\pytocs\ast_cache

100% (2 of 2) SPEED: 44/s AVG SPEED: 44/s Finished loading files. 17 functions were called. Analyzing uncalled functions.

100% (19 of 19) SPEED: 14899/s AVG SPEED: 13974/s
---------------- Analysis symmary ----------------

Error: str() at Pytocs.Core.Translate.IntrinsicTranslator.Translate_str(Application appl, CodeExpression[] args) in C:\projects\pytocs\src\Core\Translate\IntrinsicTranslator.cs:line 361 at Pytocs.Core.Translate.IntrinsicTranslator.MaybeTranslate(String id_Name, Application appl, CodeExpression[] args) in C:\projects\pytocs\src\Core\Translate\IntrinsicTranslator.cs:line 72 at Pytocs.Core.Translate.ExpTranslator.VisitApplication(Application appl) in C:\projects\pytocs\src\Core\Translate\ExpTranslator.cs:line 163 at Pytocs.Core.Syntax.Application.Accept[T](IExpVisitor1 v) in C:\projects\pytocs\src\Core\Syntax\Exp.cs:line 712 at Pytocs.Core.Translate.ExpTranslator.VisitFieldAccess(AttributeAccess acc) in C:\projects\pytocs\src\Core\Translate\ExpTranslator.cs:line 749 at Pytocs.Core.Syntax.AttributeAccess.Accept[T](IExpVisitor1 v) in C:\projects\pytocs\src\Core\Syntax\Exp.cs:line 862 at Pytocs.Core.Translate.ExpTranslator.VisitApplication(Application appl) in C:\projects\pytocs\src\Core\Translate\ExpTranslator.cs:line 150 at Pytocs.Core.Syntax.Application.Accept[T](IExpVisitor1 v) in C:\projects\pytocs\src\Core\Syntax\Exp.cs:line 712 at Pytocs.Core.Translate.StatementTranslator.VisitExp(ExpStatement e) in C:\projects\pytocs\src\Core\Translate\StatementTranslator.cs:line 296 at Pytocs.Core.Syntax.ExpStatement.Accept(IStatementVisitor v) in C:\projects\pytocs\src\Core\Syntax\Statement.cs:line 188 at Pytocs.Core.Translate.StatementTranslator.VisitSuite(SuiteStatement s) in C:\projects\pytocs\src\Core\Translate\StatementTranslator.cs:line 722 at Pytocs.Core.Syntax.SuiteStatement.Accept(IStatementVisitor v) in C:\projects\pytocs\src\Core\Syntax\Statement.cs:line 466 at Pytocs.Core.Translate.StatementTranslator.VisitSuite(SuiteStatement s) in C:\projects\pytocs\src\Core\Translate\StatementTranslator.cs:line 728 at Pytocs.Core.Syntax.SuiteStatement.Accept(IStatementVisitor v) in C:\projects\pytocs\src\Core\Syntax\Statement.cs:line 466 at Pytocs.Core.Translate.StatementTranslator.Xlat(Statement stmt) in C:\projects\pytocs\src\Core\Translate\StatementTranslator.cs:line 658 at Pytocs.Core.Translate.StatementTranslator.<>c__DisplayClass44_0.<VisitIf>b__0() in C:\projects\pytocs\src\Core\Translate\StatementTranslator.cs:line 610 at Pytocs.Core.CodeModel.CodeGenerator.If(CodeExpression test, Action xlatThen, Action xlatElse) in C:\projects\pytocs\src\Core\CodeModel\CodeGenerator.cs:line 170 at Pytocs.Core.Translate.StatementTranslator.VisitIf(IfStatement i) in C:\projects\pytocs\src\Core\Translate\StatementTranslator.cs:line 610 at Pytocs.Core.Syntax.IfStatement.Accept(IStatementVisitor v) in C:\projects\pytocs\src\Core\Syntax\Statement.cs:line 299 at Pytocs.Core.Translate.StatementTranslator.VisitSuite(SuiteStatement s) in C:\projects\pytocs\src\Core\Translate\StatementTranslator.cs:line 722 at Pytocs.Core.Syntax.SuiteStatement.Accept(IStatementVisitor v) in C:\projects\pytocs\src\Core\Syntax\Statement.cs:line 466 at Pytocs.Core.Translate.StatementTranslator.<>c__DisplayClass24_0.<VisitTry>b__0() in C:\projects\pytocs\src\Core\Translate\StatementTranslator.cs:line 211 at Pytocs.Core.CodeModel.CodeGenerator.Try(Action genTryStatements, IEnumerable1 catchClauses, Action genFinallyStatements) in C:\projects\pytocs\src\Core\CodeModel\CodeGenerator.cs:line 473 at Pytocs.Core.Translate.StatementTranslator.VisitTry(TryStatement t) in C:\projects\pytocs\src\Core\Translate\StatementTranslator.cs:line 209 at Pytocs.Core.Syntax.TryStatement.Accept(IStatementVisitor v) in C:\projects\pytocs\src\Core\Syntax\Statement.cs:line 500 at Pytocs.Core.Translate.StatementTranslator.VisitSuite(SuiteStatement s) in C:\projects\pytocs\src\Core\Translate\StatementTranslator.cs:line 728 at Pytocs.Core.Syntax.SuiteStatement.Accept(IStatementVisitor v) in C:\projects\pytocs\src\Core\Syntax\Statement.cs:line 466 at Pytocs.Core.Translate.StatementTranslator.Xlat(Statement stmt) in C:\projects\pytocs\src\Core\Translate\StatementTranslator.cs:line 658 at Pytocs.Core.Translate.MethodGenerator.Xlat(SuiteStatement suite) in C:\projects\pytocs\src\Core\Translate\MethodGenerator.cs:line 121 at Pytocs.Core.Translate.MethodGenerator.b15_1() in C:\projects\pytocs\src\Core\Translate\MethodGenerator.cs:line 87 at Pytocs.Core.CodeModel.CodeGenerator.GenerateMethodBody(ICodeFunction fn, Action body) in C:\projects\pytocs\src\Core\CodeModel\CodeGenerator.cs:line 327 at Pytocs.Core.CodeModel.CodeGenerator.Method(String name, IEnumerable`1 parms, CodeTypeReference retType, Action body) in C:\projects\pytocs\src\Core\CodeModel\CodeGenerator.cs:line 271 at Pytocs.Core.Translate.MethodGenerator.Generate(CodeTypeReference retType, CodeParameterDeclarationExpression[] parms) in C:\projects\pytocs\src\Core\Translate\MethodGenerator.cs:line 87 at Pytocs.Core.Translate.MethodGenerator.Generate() in C:\projects\pytocs\src\Core\Translate\MethodGenerator.cs:line 75 at Pytocs.Core.Translate.StatementTranslator.VisitFuncdef(FunctionDef f) in C:\projects\pytocs\src\Core\Translate\StatementTranslator.cs:line 588 at Pytocs.Core.Syntax.FunctionDef.Accept(IStatementVisitor v) in C:\projects\pytocs\src\Core\Syntax\FunctionDef.cs:line 55 at Pytocs.Core.Translate.StatementTranslator.VisitSuite(SuiteStatement s) in C:\projects\pytocs\src\Core\Translate\StatementTranslator.cs:line 728 at Pytocs.Core.Syntax.SuiteStatement.Accept(IStatementVisitor v) in C:\projects\pytocs\src\Core\Syntax\Statement.cs:line 466 at Pytocs.Core.Translate.StatementTranslator.<>c__DisplayClass15_0.b2() in C:\projects\pytocs\src\Core\Translate\StatementTranslator.cs:line 75 at Pytocs.Core.CodeModel.CodeGenerator.Class(String name, IEnumerable1 baseClasses, Func1 fieldGenerator, Action bodyGenerator) in C:\projects\pytocs\src\Core\CodeModel\CodeGenerator.cs:line 122 at Pytocs.Core.Translate.StatementTranslator.VisitClass(ClassDef c) in C:\projects\pytocs\src\Core\Translate\StatementTranslator.cs:line 71 at Pytocs.Core.Syntax.ClassDef.Accept(IStatementVisitor v) in C:\projects\pytocs\src\Core\Syntax\ClassDef.cs:line 39 at Pytocs.Core.Translate.ModuleTranslator.Translate(IEnumerable1 statements) in C:\projects\pytocs\src\Core\Translate\ModuleTranslator.cs:line 51 at Pytocs.Core.Translator.TranslateModuleStatements(IEnumerable1 stm, TypeReferenceTranslator types, TextWriter output) in C:\projects\pytocs\src\Core\Translator.cs:line 108 at Pytocs.Core.Translator.TranslateModuleStatements(IEnumerable1 stm, TypeReferenceTranslator types, String outputFileName) in C:\projects\pytocs\src\Core\Translator.cs:line 85

the C:\Users...\AppData\Local\Temp\pytocs\ast_cache folder is empty.

uxmal commented 1 year ago

According to the Python specs, the built-in function str() returns the empty string if no parameters are provided. https://docs.python.org/3/library/stdtypes.html#str

The bug has been fixed. Thanks for reporting this.