Code Monkey home page Code Monkey logo

opensdl's Introduction

OpenSDL - A portable processor for Structure Definition Language (a rewrite of the OpenVMS SDL)

The Open Structure Definition Language (OpenSDL) is used to write source statements that describe data structures and that can be translated to source statements in other languages. You can include the resulting output files in a corresponding target language program for subsequent compilation.

Because OpenSDL is compiler- and language-independent, it is particularly useful for maintaining multilanguage implementations. For example, you can create and later modify a single OpenSDL source file that can be translated to multilanguage output files; any number of these output files can then be included in one or several multilanguage programming applications.

MODULE <id> IDENT <quoted_string> ;

CONSTANT <id> EQUALS <value> PREFIX <prefix> TAG <tag>;
  {
  { will generate a constant definition :
  {define <prefix>_K_<tag>_<id>	<value>
  {

CONSTANT (
  <id>,
  <id2>,
  <id3> = <value3>
  <id4>
) EUQALS 1 <value> PREFIX <prefix> TAG <tag> INCREMENT <inc> RADIX DEC|OCT|HEX;

  {will generate a set of definitions:
  {#define <prefix>_K_<tag>_<id>	<value>
  {#define <prefix>_K_<tag>_<id>	<value> + <inc>
  {#define <prefix>_K_<tag>_<id>	<value3>
  {#define <prefix>_K_<tag>_<id>	<value3>+<inc>
  {

LITERAL;
  Text to be copyied as-is;
END_LITERAL;

AGGREGATE <id>  STRUCTURE|UNION [agg_opts];
  <id>  <type_spec>;
END <id>;

  agg_opts:
    PREFIX <quoted_string>
    TAG <quoted_string>
    ALIGN
    NOALIGN
    BASEALIGN 0|1|2|3|4|5|6
    
  
  type_spec:
    BYTE, WORD, LONGWORD, QUADWORD, OCTAWORD, SIGNED, UNSIGNED, BITFIELD, DIMENSION
    STRUCT, UNION 
	
END_MODULE;

opensdl's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

opensdl's Issues

OpenVMS forever!

**Hi Jonathan!

Just want to say : nice job!
Cool coding style!**

The following errors need to be resolved...

  1. Need to determine what we should do with a DIMENSION on an AGGREGATE or subaggregate.
  2. Need to verify the size calculated in the SDLTYPDEF.SDL file.
  3. The last no-print comment on a CONSTANT list is getting printed and should not be.
  4. The ':' offset is not getting calculated correctly.
  5. Need to test the use of command line qualifiers.

After this, the documentation is going to need to be significantly updated. There are new features and subtle changes to existing functionality.

NOTE: The goal for all of this is that any SDL file that was able to be processed by the original SDL program should continue to be processed and generate similar output files (but in a more portable format).

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.