Skip to content
/ CBasic Public

This is a simple Basic Language. It covers the subset of the language

Notifications You must be signed in to change notification settings

janus/CBasic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

CBasic

This is a simple Basic Language. It covers the subset of the language

Version:: 0.0001

CBasic...a C port of Basic, the version popular in the 60s

Presently it lacks the following:

FOR loop

Array

READ and DATA

user function definition

We hope that you will use this version to learn how interpreter(if you ready don't know) are crafted, and also give us feedback in the area of code design.

To play with go to main function and carefully edit this variable ..

char* ytest = "foo = (314159 * 10) - 3000000 \n print foo \n \n tin = 3 \n if tin > tin then fin \n print foo \n input guess \n print foo / guess \n fin: \n print "Well Done" \n print tin ";

You can also include in the main function the ability to read a whole file once and use the result to call function tokenize . However, you have to edit the first while loop inside tokenize.... instead of while((c = *source++) != 0) change to while((c = *source++) != EOF)

Tell us your findings. We intend to add Array, Read, and Data store in the next version(they are virtually done). We are also working to include user function definition and FOR loop.

Things it can do:

Assignment Statement :: foo = (314159 * 10) - 3000000

Print Statement :: -> print expression :: print foo

Input Statement::-> input variable :: input guess

If Statement and Label

::-> if expression then label ... you declare label like goo: , so if you have --if 8 < 10 then goo, you program will jump to goo

Goto Statement:: First label .. Koo: , for later just call goto Koo. Note that you can position label before or after goto.

On expression operator we have :

  • op for both number and string(concatenation)
  • op for only number

/ op for only number

  • op for only number

< and > for both number and string

We missed out freeing memory in some places .. see if you can figure that out.

About

This is a simple Basic Language. It covers the subset of the language

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages