Git Product home page Git Product logo

codemate's Introduction

ASCII logo here

Installation

Download the installer here, run it in the shell:

$ chmod a+x codemate.installer
$ ./codemate.installer

then codemate should be ready to go!

Since CodeMate will updated continuously, keeping your installed version up to date will be convenient. So an operator update is added, you can invoke it as:

$ codemate update

then CodeMate will be updated if necessary.

Donation

CodeMate is open-sourced and the author uses his time to create it, so if you find it really saves your time, consider give a push to make CodeMate go further please.

Click here to lend your support to: Funding for CodeMate and make a donation at pledgie.com !

Description

CodeMate is a language tool suite for reducing the coding burden of scientific programmers who use Fortran language, since other C/C++, Java programmers already get fantastic tools. So I create CodeMate which can parse Fortran codes, generate dependency relationship, build codes, link external libraries. All of these should be automatic. In addition, I also add a practical template mechanism to Fortran, since template can really save a lot of typing for us.

Previously, I have rewritten CodeMate three times, from BASH to Ruby. Right now, I switch to Java, because of the indispensable parser generator ANTLR (currently in its 4th version). It is more efficient and powerful than other generators I have tried. In addition, ANTLR is better supported and more active.

I will update this README continuously. You can also check out the wiki.

Command Usage

The final product of CodeMate is just a command codemate. You can invoke it in Linux/Mac terminal as:

codemate help

This will print the basic usage of it. When first called, CodeMate will ask for some information about compiler and libraries, and create the configuration file in ~/.codemate/config. For scanning a Fortran project, use scan operator

codemate scan <project root>

It will scan the Fortran codes in that directory and its subdirectories, and generate a Makefile for building the project.

Template in Fortran

The template is expressed by writing a Java class which implements an interface TemplateBundle.

package codemate.Fortran;

import java.util.*;

public interface TemplateBundle {
    public boolean containsTemplate(String templateName);

    public Map<Template, String> instantiate(String templateName,
            List<String> args, String block);
}

In method instantiate, you can write any logics and return expanded Fortran code snippet based on the inputed args and block with the full power of Java.

When you want to create a new template class, you can call

codemate create template <template class>

A template of template class will be generated.

Documentation

I am writing a manual for CodeMate (not completed), and you may also find some useful information in the wiki.

Authors

codemate's People

Contributors

dongli avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.