Git Product home page Git Product logo

dfm-toolkit's People

Contributors

dadie avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

atkins126

dfm-toolkit's Issues

[libdfm] Support building for/on Microsoft Windows

libdfm should be able to be compiled on Windows and for Windows.

I haven't yet tried to compile the library on or for Windows but it's likely that at least because of the used function ::iconv() some changes are required to support building for/on Windows.

[libdfm] Support parse tree weeding configuration

Currently the weeder for the parse tree while having a configuration it's not available for users of the library. Each possible configuration should be tested to make sure a valid ast can be generated from the more or less weeded parse tree.

It could be as simple as adding another argument to dfm::pt::weed().

[dfm-image-export] DFM Examples (TImage)

Example files for TImage objects are needed.

For each example file the following information should be provided:

  1. expected output image(s)
  2. RAD Studio Version which which they were created (e.g. RAD Studio XE)

Using this information a test should be defined.

[libdfm] Support AST formatted configuration

Currently aside from padding no configuration is available for the formatted dfm output of the ast.

The following options should be available:

  • Column limit (n, default:120)
  • Use tabs (yes, no, default: no)
  • Tab width (n, default: 8)
  • Indent width (n, default: 2)
  • Empty inline objects in one line (yes, no, default: no)
  • Binary string column limit (n, default: 64)
  • Escape non ASCII characters (yes, no, default: yes)
  • Space before trailing comment (yes, no, default: yes)
  • Reflow comments (yes, no, default: no)
  • Break before braces (yes, no, default: no)
  • Break before comma (yes, no, default: no)
  • Break after braces (yes, no, default: yes)
  • Break after comma (yes, no, default: no)
  • Align assigns (left, right, none, default: none)
  • Newline (cr, lf, crlf, preserve, default: preserve)

[libdfm] Support lexer weeding configuration

Currently the weeder for the tokens while having a configuration it's not available for users of the library. Each possible likely configuration should be tested to make sure a valid parse tree can be generated from the more or less weeded tokens.

It could be as simple as adding another argument to dfm::lexer::weed().

Argument was added to the function dfm::lexer::weed() but tests are still missing.

[libdfm] Separate declaration and definition of member functions of template types

To make template types more readable the declaration and definition of member functions should be separated.

Before

template<typename A>
struct B {
    RetTypeC MemberFnD(ParamE e){ /* Do Stuff */ return {}; }
    RetTypeC MemberFnF(ParamE e){ /* Do Stuff */ return {}; }
    RetTypeC MemberFnG(ParamE e){ /* Do Stuff */ return {}; }
    RetTypeC MemberFnH(ParamE e){ /* Do Stuff */ return {}; }
};

After

template<typename A>
struct B {
    RetTypeC MemberFnD(ParamE e);
    RetTypeC MemberFnF(ParamE e);
    RetTypeC MemberFnG(ParamE e);
    RetTypeC MemberFnH(ParamE e);
};

template<typename A>
RetTypeC B<A>::MemberFnD(ParamE e){ /* Do Stuff */ return {}; }

template<typename A>
RetTypeC B<A>::MemberFnF(ParamE e){ /* Do Stuff */ return {}; }

template<typename A>
RetTypeC B<A>::MemberFnG(ParamE e){ /* Do Stuff */ return {}; }

template<typename A>
RetTypeC B<A>::MemberFnH(ParamE e){ /* Do Stuff */ return {}; }

[libdfm] Support expressions in the abstract syntax tree

Currently expressions are mostly ignored and simply stored as a list of tokens in the abstract syntax tree. Instead the expression (e.g. 1+2+3+4 or 'abc'#50'def') should be parsed so they could be (partially) evaluated if requested.

[dfm-image-export] DFM Examples (TImageList)

Example files for TImageList objects are needed.

For each example file the following information should be provided:

  1. expected output image(s)
  2. RAD Studio Version which which they were created (e.g. RAD Studio XE)

Using this information a test should be defined.

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.