Projects tagged ‘interpreter’ and ‘lexer’


Jump to tag:

Projects tagged ‘interpreter’ and ‘lexer’

Filtered by Project Tags interpreter lexer

Refine results Project Tags parser (2) scripting (1) antlr (1) shell (1) java (1) nxc (1) language (1)

[3 total ]

0 Users

This project implements a simple script interpreter in Java. Its purpose is to provide a simple code base that is easy to understand and be used for learning basic techniques in writing an ... [More] interpreter. The project contains the following: Hand written Lexer Parser that process tokens from the Lexer to check the syntax and generate an Abstract Syntax Tree An Interpreter that evaluates the abstract syntax tree by visiting the nodes. It also performs some semantic checking. Here is an example script it successfully runs: /* * @author Cameron Zemek */ // This script is an example of a simple language. // There are only three basic data types: numbers, strings, boolean a_number = 3 ^ 2; a_string = "hello"; a_bool = true; // Operators concat_string = "hello" ~ " " ~ "world."; fav_string = 3 ~ " is my favourite number"; result_number = 1 + 2 - 1 * 5 / 3.2 + 2^2; isEmail = true; someOtherBoolean = false; condition = isEmail && (len(a_string) > 0) || someOtherBoolean; // if control flow if (a_number < 3) { println("number is less then 3"); } else if (a_number == 3) { println("number is 3"); } else { println("number is greater then 3"); } // while loop counter = 1; length = 9; while (counter <= length) { counter = counter + 1; } // Arrays my_list = ["apple", "banana", "orange"]; my_list[1] = "pear"; println(my_list[1]); // pear // foreach loop foreach (my_list as item) { println(item); } // Dictonary dict = {"fruit" : "apple", "veggie" : "pumpkin"}; dict["fruit"] = "orange"; println(dict["fruit"]); // orange foreach (dict as key : value) { println(key ~ ": " ~ value); } // Defining functions sum = function(list_of_numbers) { total = 0; foreach (list_of_numbers as number) { total = total + number; } }; range = function(start_number, end_number, step = 1) { result = []; number = start_number; while (number <= end_number) { array_push(result, number); number = number + step; } return result; }; // Calling functions println(sum(range(1, 9))); [Less]
Created about 1 year ago.

0 Users

using C like language to operating the shell
Created 11 months ago.

0 Users

Interpreter of the NXC language based on ANTLR parser with Java as a language target.
Created about 1 year ago.