summaryrefslogtreecommitdiff
path: root/pango/mini-xft/minixftgram.y
diff options
context:
space:
mode:
Diffstat (limited to 'pango/mini-xft/minixftgram.y')
-rw-r--r--pango/mini-xft/minixftgram.y452
1 files changed, 0 insertions, 452 deletions
diff --git a/pango/mini-xft/minixftgram.y b/pango/mini-xft/minixftgram.y
deleted file mode 100644
index e2daaa33..00000000
--- a/pango/mini-xft/minixftgram.y
+++ /dev/null
@@ -1,452 +0,0 @@
-/*
- * $XFree86: xc/lib/MiniXft/xftgram.y,v 1.5 2001/05/16 10:32:54 keithp Exp $
- *
- * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission. Keith Packard makes no
- * representations about the suitability of this software for any purpose. It
- * is provided "as is" without express or implied warranty.
- *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-%{
-
-#include <stdlib.h>
-#include <stdio.h>
-#include "minixftint.h"
-
-static MiniXftMatrix matrix;
-
-%}
-
-%union {
- int ival;
- double dval;
- char *sval;
- MiniXftExpr *eval;
- MiniXftPattern *pval;
- MiniXftValue vval;
- MiniXftEdit *Eval;
- MiniXftOp oval;
- MiniXftQual qval;
- MiniXftTest *tval;
-}
-
-%token <ival> INTEGER
-%token <dval> DOUBLE
-%token <sval> STRING NAME
-%token <ival> ANY ALL
-%token <ival> DIR CACHE INCLUDE INCLUDEIF MATCH EDIT
-%token <ival> TOK_TRUE TOK_FALSE TOK_NIL
-%token <ival> EQUAL SEMI OS CS
-
-%type <eval> expr
-%type <vval> value
-%type <sval> field
-%type <Eval> edit
-%type <Eval> edits
-%type <oval> eqop
-%type <qval> qual
-%type <oval> compare
-%type <tval> tests test
-%type <dval> number
-
-%right <ival> QUEST COLON
-%left <ival> OROR
-%left <ival> ANDAND
-%left <ival> EQEQ NOTEQ
-%left <ival> LESS LESSEQ MORE MOREEQ
-%left <ival> PLUS MINUS
-%left <ival> TIMES DIVIDE
-%right <ival> NOT
-
-%%
-configs : configs config
- |
- ;
-config : DIR STRING
- { MiniXftConfigAddDir ($2); }
- | CACHE STRING
- { MiniXftConfigSetCache ($2); }
- | INCLUDE STRING
- { MiniXftConfigPushInput ($2, True); }
- | INCLUDEIF STRING
- { MiniXftConfigPushInput ($2, False); }
- | MATCH tests EDIT edits
- { MiniXftConfigAddEdit ($2, $4); }
- ;
-tests : test tests
- { $1->next = $2; $$ = $1; }
- |
- { $$ = 0; }
- ;
-test : qual field compare value
- { $$ = MiniXftTestCreate ($1, $2, $3, $4); }
- ;
-qual : ANY
- { $$ = MiniXftQualAny; }
- | ALL
- { $$ = MiniXftQualAll; }
- |
- { $$ = MiniXftQualAny; }
- ;
-field : NAME
- {
- $$ = MiniXftConfigSaveField ($1);
- }
- ;
-compare : EQUAL
- { $$ = MiniXftOpEqual; }
- | EQEQ
- { $$ = MiniXftOpEqual; }
- | NOTEQ
- { $$ = MiniXftOpNotEqual; }
- | LESS
- { $$ = MiniXftOpLess; }
- | LESSEQ
- { $$ = MiniXftOpLessEqual; }
- | MORE
- { $$ = MiniXftOpMore; }
- | MOREEQ
- { $$ = MiniXftOpMoreEqual; }
- ;
-value : INTEGER
- {
- $$.type = MiniXftTypeInteger;
- $$.u.i = $1;
- }
- | DOUBLE
- {
- $$.type = MiniXftTypeDouble;
- $$.u.d = $1;
- }
- | STRING
- {
- $$.type = MiniXftTypeString;
- $$.u.s = $1;
- }
- | TOK_TRUE
- {
- $$.type = MiniXftTypeBool;
- $$.u.b = True;
- }
- | TOK_FALSE
- {
- $$.type = MiniXftTypeBool;
- $$.u.b = False;
- }
- | TOK_NIL
- {
- $$.type = MiniXftTypeVoid;
- }
- | matrix
- {
- $$.type = MiniXftTypeMatrix;
- $$.u.m = &matrix;
- }
- ;
-matrix : OS number number number number CS
- {
- matrix.xx = $2;
- matrix.xy = $3;
- matrix.yx = $4;
- matrix.__REALLY_YY__ = $5;
- }
-number : INTEGER
- { $$ = (double) $1; }
- | DOUBLE
- ;
-edits : edit edits
- { $1->next = $2; $$ = $1; }
- |
- { $$ = 0; }
- ;
-edit : field eqop expr SEMI
- { $$ = MiniXftEditCreate ($1, $2, $3); }
- ;
-eqop : EQUAL
- { $$ = MiniXftOpAssign; }
- | PLUS EQUAL
- { $$ = MiniXftOpPrepend; }
- | EQUAL PLUS
- { $$ = MiniXftOpAppend; }
- ;
-expr : INTEGER
- { $$ = MiniXftExprCreateInteger ($1); }
- | DOUBLE
- { $$ = MiniXftExprCreateDouble ($1); }
- | STRING
- { $$ = MiniXftExprCreateString ($1); }
- | TOK_TRUE
- { $$ = MiniXftExprCreateBool (True); }
- | TOK_FALSE
- { $$ = MiniXftExprCreateBool (False); }
- | TOK_NIL
- { $$ = MiniXftExprCreateNil (); }
- | matrix
- { $$ = MiniXftExprCreateMatrix (&matrix); }
- | NAME
- { $$ = MiniXftExprCreateField ($1); }
- | expr OROR expr
- { $$ = MiniXftExprCreateOp ($1, MiniXftOpOr, $3); }
- | expr ANDAND expr
- { $$ = MiniXftExprCreateOp ($1, MiniXftOpAnd, $3); }
- | expr EQEQ expr
- { $$ = MiniXftExprCreateOp ($1, MiniXftOpEqual, $3); }
- | expr NOTEQ expr
- { $$ = MiniXftExprCreateOp ($1, MiniXftOpNotEqual, $3); }
- | expr LESS expr
- { $$ = MiniXftExprCreateOp ($1, MiniXftOpLess, $3); }
- | expr LESSEQ expr
- { $$ = MiniXftExprCreateOp ($1, MiniXftOpLessEqual, $3); }
- | expr MORE expr
- { $$ = MiniXftExprCreateOp ($1, MiniXftOpMore, $3); }
- | expr MOREEQ expr
- { $$ = MiniXftExprCreateOp ($1, MiniXftOpMoreEqual, $3); }
- | expr PLUS expr
- { $$ = MiniXftExprCreateOp ($1, MiniXftOpPlus, $3); }
- | expr MINUS expr
- { $$ = MiniXftExprCreateOp ($1, MiniXftOpMinus, $3); }
- | expr TIMES expr
- { $$ = MiniXftExprCreateOp ($1, MiniXftOpTimes, $3); }
- | expr DIVIDE expr
- { $$ = MiniXftExprCreateOp ($1, MiniXftOpDivide, $3); }
- | NOT expr
- { $$ = MiniXftExprCreateOp ($2, MiniXftOpNot, (MiniXftExpr *) 0); }
- | expr QUEST expr COLON expr
- { $$ = MiniXftExprCreateOp ($1, MiniXftOpQuest, MiniXftExprCreateOp ($3, MiniXftOpQuest, $5)); }
- ;
-%%
-
-int
-MiniXftConfigwrap (void)
-{
- return 1;
-}
-
-void
-MiniXftConfigerror (char *fmt, ...)
-{
- va_list args;
-
- fprintf (stderr, "\"%s\": line %d, ", MiniXftConfigFile, MiniXftConfigLineno);
- va_start (args, fmt);
- vfprintf (stderr, fmt, args);
- va_end (args);
- fprintf (stderr, "\n");
-}
-
-MiniXftTest *
-MiniXftTestCreate (MiniXftQual qual, const char *field, MiniXftOp compare, MiniXftValue value)
-{
- MiniXftTest *test = (MiniXftTest *) malloc (sizeof (MiniXftTest));;
-
- if (test)
- {
- test->next = 0;
- test->qual = qual;
- test->field = field; /* already saved in grammar */
- test->op = compare;
- if (value.type == MiniXftTypeString)
- value.u.s = _MiniXftSaveString (value.u.s);
- else if (value.type == MiniXftTypeMatrix)
- value.u.m = _MiniXftSaveMatrix (value.u.m);
- test->value = value;
- }
- return test;
-}
-
-MiniXftExpr *
-MiniXftExprCreateInteger (int i)
-{
- MiniXftExpr *e = (MiniXftExpr *) malloc (sizeof (MiniXftExpr));
-
- if (e)
- {
- e->op = MiniXftOpInteger;
- e->u.ival = i;
- }
- return e;
-}
-
-MiniXftExpr *
-MiniXftExprCreateDouble (double d)
-{
- MiniXftExpr *e = (MiniXftExpr *) malloc (sizeof (MiniXftExpr));
-
- if (e)
- {
- e->op = MiniXftOpDouble;
- e->u.dval = d;
- }
- return e;
-}
-
-MiniXftExpr *
-MiniXftExprCreateString (const char *s)
-{
- MiniXftExpr *e = (MiniXftExpr *) malloc (sizeof (MiniXftExpr));
-
- if (e)
- {
- e->op = MiniXftOpString;
- e->u.sval = _MiniXftSaveString (s);
- }
- return e;
-}
-
-MiniXftExpr *
-MiniXftExprCreateMatrix (const MiniXftMatrix *m)
-{
- MiniXftExpr *e = (MiniXftExpr *) malloc (sizeof (MiniXftExpr));
-
- if (e)
- {
- e->op = MiniXftOpMatrix;
- e->u.mval = _MiniXftSaveMatrix (m);
- }
- return e;
-}
-
-MiniXftExpr *
-MiniXftExprCreateBool (Bool b)
-{
- MiniXftExpr *e = (MiniXftExpr *) malloc (sizeof (MiniXftExpr));
-
- if (e)
- {
- e->op = MiniXftOpBool;
- e->u.bval = b;
- }
- return e;
-}
-
-MiniXftExpr *
-MiniXftExprCreateNil (void)
-{
- MiniXftExpr *e = (MiniXftExpr *) malloc (sizeof (MiniXftExpr));
-
- if (e)
- {
- e->op = MiniXftOpNil;
- }
- return e;
-}
-
-MiniXftExpr *
-MiniXftExprCreateField (const char *field)
-{
- MiniXftExpr *e = (MiniXftExpr *) malloc (sizeof (MiniXftExpr));
-
- if (e)
- {
- e->op = MiniXftOpField;
- e->u.field = _MiniXftSaveString (field);
- }
- return e;
-}
-
-MiniXftExpr *
-MiniXftExprCreateOp (MiniXftExpr *left, MiniXftOp op, MiniXftExpr *right)
-{
- MiniXftExpr *e = (MiniXftExpr *) malloc (sizeof (MiniXftExpr));
-
- if (e)
- {
- e->op = op;
- e->u.tree.left = left;
- e->u.tree.right = right;
- }
- return e;
-}
-
-void
-MiniXftExprDestroy (MiniXftExpr *e)
-{
- switch (e->op) {
- case MiniXftOpInteger:
- break;
- case MiniXftOpDouble:
- break;
- case MiniXftOpString:
- free (e->u.sval);
- break;
- case MiniXftOpMatrix:
- free (e->u.mval);
- break;
- case MiniXftOpBool:
- break;
- case MiniXftOpField:
- free (e->u.field);
- break;
- case MiniXftOpAssign:
- case MiniXftOpPrepend:
- case MiniXftOpAppend:
- break;
- case MiniXftOpOr:
- case MiniXftOpAnd:
- case MiniXftOpEqual:
- case MiniXftOpNotEqual:
- case MiniXftOpLess:
- case MiniXftOpLessEqual:
- case MiniXftOpMore:
- case MiniXftOpMoreEqual:
- case MiniXftOpPlus:
- case MiniXftOpMinus:
- case MiniXftOpTimes:
- case MiniXftOpDivide:
- case MiniXftOpQuest:
- MiniXftExprDestroy (e->u.tree.right);
- /* fall through */
- case MiniXftOpNot:
- MiniXftExprDestroy (e->u.tree.left);
- break;
- case MiniXftOpNil:
- break;
- }
- free (e);
-}
-
-MiniXftEdit *
-MiniXftEditCreate (const char *field, MiniXftOp op, MiniXftExpr *expr)
-{
- MiniXftEdit *e = (MiniXftEdit *) malloc (sizeof (MiniXftEdit));
-
- if (e)
- {
- e->next = 0;
- e->field = field; /* already saved in grammar */
- e->op = op;
- e->expr = expr;
- }
- return e;
-}
-
-void
-MiniXftEditDestroy (MiniXftEdit *e)
-{
- if (e->next)
- MiniXftEditDestroy (e->next);
- free ((void *) e->field);
- if (e->expr)
- MiniXftExprDestroy (e->expr);
-}
-
-char *
-MiniXftConfigSaveField (const char *field)
-{
- return _MiniXftSaveString (field);
-}