So, Don't confuse the fact that Chicken compiles to C with being able to translate to C. The result of the Chicken compiler is doubtful to be maintainable by hand. If you run csc -t on a source file that actually compiles, you will see what sort of C Chicken generates.
If you're still trying to get the SKILL program to compile in Chicken a fact brought up on the wikipedia page you linked will be problematic: http://en.wikipedia.org/wiki/Cadence_SKILL#Syntax SKILL seems to allow C style function calling and infex notation for some operators. Chicken Scheme (And most Schemes only) use prefix notation. So, function calls written as: Func(A B) will have to be rewritten as: (Func A B) And operators written as X + Y will have to be rewritten as (+ X Y) Additionally, for comments /* */ is not supported, Scheme comments start with a ; and go on till end of line. There are many other problems with the syntax of the small code snippets you linked, I suggest getting aquainted with standard Scheme Indy On Tue, Sep 1, 2009 at 8:11 PM, Yaron Kretchmer<yaronkretch...@gmail.com> wrote: > Hi Ray. > My apologies. Let me explain some more. > > I have a program written in a language called SKILL, which is a > variant of Scheme. SKILL is used in semiconductor design to describe > the layout of transistors, and is described briefly in > http://en.wikipedia.org/wiki/Cadence_SKILL > > I am interested in translating this SKILL program to C, and thought I > could use Chicken to accomplish that. I've installed and ran Chicken > on the various SKILL programs I have, and some of the trivial programs > compiled OK, whereas some of the more complex examples failed. This > might be related to the Syntax differences between SKILL and Scheme, > or is related to my incorrect usage of Chicken. > > > Is the above within the confines of this group? If it is, I'll send > the code that was causing me problems, and would appreciate any help, > > Best regards > Yaron > > > On Tue, Sep 1, 2009 at 6:45 PM, Nicholas "Indy" Ray<arel...@gmail.com> wrote: >> Sorry, But I don't think the HTML was the major problem with the email. >> >> First of all it's not clear what you are trying to do. >> >> Second of all without any code to see what's generating you're errors >> it's hard to diagnose. >> >> Also things like >> >> "(() if (opptapObj->tap == "None" then return (nil) else return (t)))" >> >> and >> >> "/* comment >> and more comment >> end of comment */" >> >> and >> >> "prefix = substring(dev 1 2)" >> >> Looks nothing like Scheme code, much more like C code. Are you sure >> the code is Scheme at all?? >> Additionally this isn't exactally a good mailing list for converting >> code from SKILL to C as this is a Chicken Scheme mailing list, and >> unless Chicken is some how involved, neither C or Skill seems to >> apply. >> >> Indy >> >> On Tue, Sep 1, 2009 at 6:10 PM, Yaron Kretchmer<yaronkretch...@gmail.com> >> wrote: >>> Here's a resend with no HTML :P >>> ------------------------------- begin >>> resend------------------------------------- >>> >>> Hi All. >>> Just joined the group, so forgive my newbie questions :) >>> >>> I have some legacy code written in SKILL (a variant of Scheme) which >>> I'm trying to convert to C. >>> >>> I tried compiling the code , and got several different error message, >>> and was wondering whether somebody could suggest a solution for each >>> : >>> >>> =======================begin >>> problems========================================== >>> Problem 1 - substring >>> *) The code uses the "substring" function which the compiler seems to >>> have a problem with. So lines like >>> prefix = substring(dev 1 2) >>> create compiler error message like >>> Syntax error: illegal atomic form >>> >>> () >>> >>> Expansion history: >>> ... >>> <syntax> (dev 1 2) <-- >>> >>> problem 2 - multi-line comments >>> *) The compiler doesn't recognize multi-line comments >>> /* comment >>> and more comment >>> end of comment */ >>> >>> problem 3 - Unknown object methods >>> *) The code refers to object methods/properties through the use of >>> the "->" operator. The compiler doesn't like. >>> prog( () >>> if( opptapObj->tap == "None" then return(nil) else return(t)) >>> ) ;prog >>> >>> generates error >>> Syntax error: illegal atomic form >>> >>> () >>> >>> Expansion history: >>> >>> ... >>> <syntax> (() if (opptapObj->tap == "None" then >>> return (nil) else return (t))) <-- >>> ==================End >>> problems=============================================== >>> >>> Thanks a lot! >>> Yaron >>> >>> >>> _______________________________________________ >>> Chicken-users mailing list >>> Chicken-users@nongnu.org >>> http://lists.nongnu.org/mailman/listinfo/chicken-users >>> >> > _______________________________________________ Chicken-users mailing list Chicken-users@nongnu.org http://lists.nongnu.org/mailman/listinfo/chicken-users