65fea56f17cd614bc8908264df980a62e1931468vboxsync * Copyright 2002 Red Hat Inc., Durham, North Carolina.
65fea56f17cd614bc8908264df980a62e1931468vboxsync * All Rights Reserved.
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Permission is hereby granted, free of charge, to any person obtaining
65fea56f17cd614bc8908264df980a62e1931468vboxsync * a copy of this software and associated documentation files (the
65fea56f17cd614bc8908264df980a62e1931468vboxsync * "Software"), to deal in the Software without restriction, including
65fea56f17cd614bc8908264df980a62e1931468vboxsync * without limitation on the rights to use, copy, modify, merge,
65fea56f17cd614bc8908264df980a62e1931468vboxsync * publish, distribute, sublicense, and/or sell copies of the Software,
65fea56f17cd614bc8908264df980a62e1931468vboxsync * and to permit persons to whom the Software is furnished to do so,
65fea56f17cd614bc8908264df980a62e1931468vboxsync * subject to the following conditions:
65fea56f17cd614bc8908264df980a62e1931468vboxsync * The above copyright notice and this permission notice (including the
65fea56f17cd614bc8908264df980a62e1931468vboxsync * next paragraph) shall be included in all copies or substantial
65fea56f17cd614bc8908264df980a62e1931468vboxsync * portions of the Software.
65fea56f17cd614bc8908264df980a62e1931468vboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
65fea56f17cd614bc8908264df980a62e1931468vboxsync * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
65fea56f17cd614bc8908264df980a62e1931468vboxsync * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
65fea56f17cd614bc8908264df980a62e1931468vboxsync * NON-INFRINGEMENT. IN NO EVENT SHALL RED HAT AND/OR THEIR SUPPLIERS
65fea56f17cd614bc8908264df980a62e1931468vboxsync * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
65fea56f17cd614bc8908264df980a62e1931468vboxsync * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
65fea56f17cd614bc8908264df980a62e1931468vboxsync * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
65fea56f17cd614bc8908264df980a62e1931468vboxsync * SOFTWARE.
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Rickard E. (Rik) Faith <faith@redhat.com>
65fea56f17cd614bc8908264df980a62e1931468vboxsync * Interface to DMX configuration file parser. \see dmxparse.c */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/** Stores tokens not stored in other structures (e.g., keywords and ;) */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/** Stores parsed strings. */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/** Stores parsed numbers. */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/** Stores parsed pairs (e.g., x y) */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/** Stores parsed comments not stored with a token. */
65fea56f17cd614bc8908264df980a62e1931468vboxsynctypedef enum {
65fea56f17cd614bc8908264df980a62e1931468vboxsync/** Stores a geometry specification. */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/** Stores a pair of geometry specifications. */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/** Stores parsed display information. */
65fea56f17cd614bc8908264df980a62e1931468vboxsync /* Summary information */
65fea56f17cd614bc8908264df980a62e1931468vboxsync /* Screen Window Geometry */
65fea56f17cd614bc8908264df980a62e1931468vboxsync /* Root Window Geometry */
65fea56f17cd614bc8908264df980a62e1931468vboxsync /* Origin in global space */
65fea56f17cd614bc8908264df980a62e1931468vboxsync /* Raw configuration information */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/** Stores parsed wall information. */
65fea56f17cd614bc8908264df980a62e1931468vboxsync /* Summary information */
65fea56f17cd614bc8908264df980a62e1931468vboxsync int xwall, ywall; /* dimensions of wall, in tiles */
65fea56f17cd614bc8908264df980a62e1931468vboxsync /* Raw configuration informaiton */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/** Stores parsed option information. */
65fea56f17cd614bc8908264df980a62e1931468vboxsync /* Summary information */
65fea56f17cd614bc8908264df980a62e1931468vboxsync /* Raw configuration informaiton */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/** Stores parsed param information. */
65fea56f17cd614bc8908264df980a62e1931468vboxsync DMXConfigTokenPtr end; /* Either open/close OR end */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/** Stores options under an entry (subentry). */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/** Stores parsed virtual information. */
65fea56f17cd614bc8908264df980a62e1931468vboxsync /* Summary information */
65fea56f17cd614bc8908264df980a62e1931468vboxsync /* Raw configuration information */
65fea56f17cd614bc8908264df980a62e1931468vboxsync/** Heads entry storage. */
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern int yylex(void);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern const char *dmxConfigCopyString(const char *string, int length);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigTokenPtr dmxConfigCreateToken(int token, int line,
65fea56f17cd614bc8908264df980a62e1931468vboxsync const char *comment);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern void dmxConfigFreeToken(DMXConfigTokenPtr p);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigStringPtr dmxConfigCreateString(int token, int line,
65fea56f17cd614bc8908264df980a62e1931468vboxsync const char *comment,
65fea56f17cd614bc8908264df980a62e1931468vboxsync const char *string);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern void dmxConfigFreeString(DMXConfigStringPtr p);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigNumberPtr dmxConfigCreateNumber(int token, int line,
65fea56f17cd614bc8908264df980a62e1931468vboxsync const char *comment,
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern void dmxConfigFreeNumber(DMXConfigNumberPtr p);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigPairPtr dmxConfigCreatePair(int token, int line,
65fea56f17cd614bc8908264df980a62e1931468vboxsync const char *comment,
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigCommentPtr dmxConfigCreateComment(int token, int line,
65fea56f17cd614bc8908264df980a62e1931468vboxsync const char *comment);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern void dmxConfigFreeComment(DMXConfigCommentPtr p);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigPartDimPtr dmxConfigCreatePartDim(DMXConfigPairPtr pDim,
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern void dmxConfigFreePartDim(DMXConfigPartDimPtr p);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigFullDimPtr dmxConfigCreateFullDim(DMXConfigPartDimPtr pScrn,
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern void dmxConfigFreeFullDim(DMXConfigFullDimPtr p);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigDisplayPtr dmxConfigCreateDisplay(DMXConfigTokenPtr pStart,
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern void dmxConfigFreeDisplay(DMXConfigDisplayPtr p);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigWallPtr dmxConfigCreateWall(DMXConfigTokenPtr pStart,
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigOptionPtr dmxConfigCreateOption(DMXConfigTokenPtr pStart,
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern void dmxConfigFreeOption(DMXConfigOptionPtr p);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigParamPtr dmxConfigCreateParam(DMXConfigTokenPtr pStart,
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern void dmxConfigFreeParam(DMXConfigParamPtr p);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern const char **dmxConfigLookupParam(DMXConfigParamPtr p,
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigSubPtr dmxConfigCreateSub(DMXConfigType type,
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigSubPtr dmxConfigSubComment(DMXConfigCommentPtr comment);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigSubPtr dmxConfigSubDisplay(DMXConfigDisplayPtr display);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigSubPtr dmxConfigSubWall(DMXConfigWallPtr wall);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigSubPtr dmxConfigSubOption(DMXConfigOptionPtr option);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigSubPtr dmxConfigSubParam(DMXConfigParamPtr param);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigSubPtr dmxConfigAddSub(DMXConfigSubPtr head,
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigVirtualPtr dmxConfigCreateVirtual(DMXConfigTokenPtr pStart,
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern void dmxConfigFreeVirtual(DMXConfigVirtualPtr virtual);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigEntryPtr dmxConfigCreateEntry(DMXConfigType type,
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern void dmxConfigFreeEntry(DMXConfigEntryPtr entry);
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigEntryPtr dmxConfigAddEntry(DMXConfigEntryPtr head,
65fea56f17cd614bc8908264df980a62e1931468vboxsyncextern DMXConfigEntryPtr dmxConfigEntryComment(DMXConfigCommentPtr comment);