Tero Koskinen is sharing code with you

Bitbucket is a code hosting site. Unlimited public and private repositories. Free for small teams.

Don't show this again

tkoskine / ada-ir

Intermediate language, Ada version

Clone this repository (size: 83.7 KB): HTTPS / SSH
hg clone https://bitbucket.org/tkoskine/ada-ir
hg clone ssh://hg@bitbucket.org/tkoskine/ada-ir

Searching for commits

Mercurial supports a functional language for selecting a set of revisions.

The language supports a number of predicates which are joined by infix operators. Parenthesis can be used for grouping.

Identifiers such as branch names must be quoted with single or double quotes if they contain characters outside of [._a-zA-Z0-9\x80-\xff] or if they match one of the predefined predicates.

Prefix operators

not x
Changesets not in x. Short form is ! x.

Infix operators

x::y

A DAG range, meaning all changesets that are descendants of x and ancestors of y, including x and y themselves. If the first endpoint is left out, this is equivalent to ancestors(y), if the second is left out it is equivalent to descendants(x).

An alternative syntax is x..y.

x:y
All changesets with revision numbers between x and y, both inclusive. Either endpoint can be left out, they default to 0 and tip.
x and y
The intersection of changesets in x and y. Short form is x & y.
x or y
The union of changesets in x and y. There are two alternative short forms: x | y and x + y.
x - y
Changesets in x but not in y.

Predicates

all()
All changesets, the same as 0:tip.
ancestor(single, single)
Greatest common ancestor of the two changesets.
ancestors(set)
Changesets that are ancestors of a changeset in set.
author(string)
Alias for user(string).
bookmark([name])
The named bookmark or all bookmarks.
branch(set)
All changesets belonging to the branches of changesets in set.
children(set)
Child changesets of changesets in set.
closed()
Changeset is closed.
date(interval)
Changesets within the interval, see hg help dates.
descendants(set)
Changesets which are descendants of changesets in set.
file(pattern)
Changesets affecting files matched by pattern.
follow()
An alias for ::. (ancestors of the working copy's first parent).
grep(regex)
Like keyword(string) but accepts a regex. Use grep(r'...') to ensure special escape characters are handled correctly.
head()
Changeset is a named branch head.
heads(set)
Members of set with no children in set.
id(string)
Revision non-ambiguously specified by the given hex string prefix.
keyword(string)
Search commit message, user name, and names of changed files for string.
limit(set, n)
First n members of set.
max(set)
Changeset with highest revision number in set.
merge()
Changeset is a merge changeset.
min(set)
Changeset with lowest revision number in set.
p1([set])
First parent of changesets in set, or the working directory.
p2([set])
Second parent of changesets in set, or the working directory.
parents([set])
The set of all parents for all changesets in set, or the working directory.
present(set)
An empty set, if any revision in set isn't found; otherwise, all revisions in set.
rev(number)
Revision with the given numeric identifier.
roots(set)
Changesets with no parent changeset in set.
tag(name)
The specified tag by name, or all tagged revisions if no name is given.
user(string)
User name is string.

Commits 1–32 of 32

Author Revision Comments Message Labels Date
Tero Koskinen cbfcb72392bf Add initial stuff for optimization and skeleton structure unit tests.
Tero Koskinen 3c76ddc9c6b3 Use Ada 95 code.
Tero Koskinen af9e215865d6 Merge.
Tero Koskinen 07a623f40f7f Add clean target.
Tero Koskinen 5c629f818d44 Add more syntax.
Tero Koskinen cd421e274ef0 Convert expression value into smaller register automatically when needed.
Tero Koskinen bca58b01775a Support function calls in expressions.
Tero Koskinen 222a0da18d4b Add support for dereference expressions.
Tero Koskinen 5e28cd2af175 Calculate size correctly for objects behind dereferenced pointers.
Tero Koskinen 3bb0f3401552 Mark missing bits with TODO.
Tero Koskinen 0cdd2825490c Ignore objects directory and .pyc files.
Tero Koskinen adf3be0263df Add initial support for tests.
Tero Koskinen c5fc39be13da Allow output either to file or to stdout.
Tero Koskinen 838627526639 Initial documentation for the language syntax.
Tero Koskinen f7118d64cb44 The build files.
Tero Koskinen 087e3d488d25 Elaboration for Doubly_Linked_Lists.
Tero Koskinen 7f05fdfd3e02 Make the Params empty at the beginning.
Tero Koskinen c7184b3fd4c9 Add support for constant data
Tero Koskinen 822b3947a669 Add support for assignment statement and fix some things while there.
Tero Koskinen fdacda2f38a2 Support a bunch of new statements.
Tero Koskinen bcae226c587c Fix looping.
Tero Koskinen f2144fdd8209 Code generation for NOP, RETURN, LABEL, and GOTO statements.
Tero Koskinen 1706ab440c29 Fix return statement and variable declarations parsing.
Tero Koskinen a59edf79ebcd Fix compilation.
Tero Koskinen 10de8f0a9f92 Add some linux_x86 code generation bits.
Tero Koskinen 187b46cc13e4 88888 is too big for Janus/Ada's Integer, change it to 8888 for now.
Tero Koskinen eb0b3219664b Add initial bits of code generation.
Tero Koskinen 8ca3bf76fbe3 Ignore .o and .ali files
Tero Koskinen 95c11c6ffa34 Add lexer and parser for the IR language.
Tero Koskinen cc46e0a611f9 Add a bunch of IR.Data packages.
Tero Koskinen 94ab3903c89f Add 'with IR.IStrings;' and fix some whitespace.
Tero Koskinen 6b36d70a1659 Ada version of intermediate language.